这篇文章主要介绍“JavaScript对象标注的方法是什么”,在日常操作中,相信很多人在JavaScript对象标注的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript对象标注的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。创新互联专业提供成都网站制作、网站建设,网页设计,网站制作(企业站、成都响应式网站建设、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!
JavaScript 对象标注
实际上,JavaScript 对象的大部分都由联合数组、数字索引数组、字符串、数字或者这些类型的嵌套组合而成。因为所有类型都可以用 JavaScript 直接声明,所以可以在一条语句中静态地定义对象图。
清单 7 使用 JSON 语法声明了一个对象,并演示了如何访问这个对象。大括号表示联合数组(即对象),它的键 -值组合由逗号分隔。方括号表示数字索引数组。
清单 7. 用 JSON 在 JavaScript 中直接声明一个简单对象
var band =
{
name: "The Beatles",
members: [
{
name: "John",
instruments:
["Vocals","Guitar","Piano"]
},
{
name: "Paul",
instruments:
["Vocals","Bass","Piano","Guitar"]
},
{
name: "George",
instruments:
["Guitar","Vocals"]
},
{
name: "Ringo",
instruments:
["Drums","Vocals"]
}
]
};
// Interrogate the band object
var musician = band.members[3];
alert( musician.name
+ " played " +
musician.instruments[0]
+ " with " +
band.name ); |
既然 JSON 是一个有趣的语言特性,那么它对 Ajax 有什么意义呢?妙处在于可以用 JSON 在 Ajax 服务器响应中通过网络发送 JavaScript 对象图。
这意味着在客户端可以避免使用笨拙的 DOM API 对 XML 进行导航 —— 只需要分析 JSON 响应,就会立即得到可以访问的 JavaScript 对象图。但是,首先需要把 JavaBean 变成 JSON。
从 Java 类产生 JSON
不同 XML 生成技术所具有的优缺点也适用于 JSON 的产生。而且可以证明,存在需要再次使用表示模板技术的情况。但是,使用 JSON 在理念上更接近于在应用层之间传递序列化的对象,而不是创建应用程序状态的视图。
我将介绍如何用 org.json 这个 Java API 在 Java 类上创建 toJSONObject() 方法。然后,就可以把 JSONObject 简单地序列化成 JSON。清单 8 反映了 清单 1 讨论的 XML,显示了 Order 类的 toJSONObject() 实现。
清单 8. Order 类的 toJSONObject() 方法实现
public JSONObject toJSONObject()
{
JSONObject json = new JSONObject();
json.put("id",id);
json.put("cost",getFormattedCost());
json.put("date",date);
JSONArray jsonItems = new JSONArray();
for (Iterator |
可以看到,org.json API 非常简单。 JSONObject 代表 JavaScript 对象(即联合数组),有不同的 put() 方法,方法接受的 String 键和值是原生类型、String 类型或其他 JSON 类型。
JSONArray 代表索引数组,所以它的 put() 方法只接受一个值。请注意在清单 8 中,创建 jsonItems 数组,然后再用 put() 把它附加到 json 对象上;可以用另外一种方法做这项工作,就是对每个项目调用:
json.accumulate("items",
iter.next().toJSONObject()); |
accumulate() 方法与 put()类似,区别在于它把值添加到按照键进行识别的索引数组。清单 9 显示了如何序列化 JSONObject 并把它写入 servlet 响应。
清单 9. 从 JSONObject 生成序列化的 JSON 响应
public void doGet(HttpServletRequest req,
HttpServletResponse res)
throws java.io.IOException,
ServletException
{
String custId =
req.getParameter("username");
Customer customer =
getCustomer(custId);
res.setContentType("application/x-json");
res.getWriter().print
(customer.toJSONObject());
} |
可以看到,它实际上什么也没有做。在这里隐式调用的 JSONObject 的 toString() 方法做了所有工作。请注意,application/x-json 内容类型还有一点不确定 —— 在编写这篇文章的时候,关于 JSON 应当属于什么 MIME 类型还没有定论。但是,目前 application/x-json 是合理的选择。清单 10 显示了这个 servlet 代码的示例响应。
清单 10. Customer bean 的 JSON 表示
{
"orders":
[
{
"items":
[
{
"price": "$49.99",
"description": "
512 Megabyte Type 1 CompactFlash card.
Manufactured by Oolong Industries",
"name": "Oolong 512MB CF Card",
"id": "i-55768"
},
{
"price": "$299.99",
"description": "
7.2 Megapixel digital camera featuring six
shooting modes and 3x optical zoom. Silver.",
"name": "Fujak Superpix72 Camera",
"id": "i-74491"
}
],
"date": "08-26-2005",
"cost": "$349.98",
"id": "o-11123"
}
],
"realname": "James Hyrax",
"username": "jimmy66"
} |
到此,关于“JavaScript对象标注的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!