JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html
举个简单的例子:
js 代码
1.function showJSON() {
2. var user =
3. {
4. "username":"andy",
5. "age":20,
6. "info": { "tel": "123456", "cellphone": "98765"},
7. "address":
8. [
9. {"city":"beijing","postcode":"222333"},
10. {"city":"newyork","postcode":"555666"}
11. ]
12. }
13.
14. alert(user.username);
15. alert(user.age);
16. alert(user.info.cellphone);
17. alert(user.address[0].city);
18. alert(user.address[0].postcode);
19.}
这表示一个user对象,拥有username, age, info, address 等属性。
同样也可以用JSON来简单的修改数据,修改上面的例子
js 代码
1.function showJSON() {
2. var user =
3. {
4. "username":"andy",
5. "age":20,
6. "info": { "tel": "123456", "cellphone": "98765"},
7. "address":
8. [
9. {"city":"beijing","postcode":"222333"},
10. {"city":"newyork","postcode":"555666"}
11. ]
12. }
13.
14. alert(user.username);
15. alert(user.age);
16. alert(user.info.cellphone);
17. alert(user.address[0].city);
18. alert(user.address[0].postcode);
19.
20. user.username = "Tom";
21. alert(user.username);
22.}
JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。
js 代码
1.function showCar() {
2. var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");
3. alert(carr.toJSONString());
4.}
5.
6.function Car(make, model, year, color) {
1. this.make = make;
2. this.model = model;
3. this.year = year;
4. this.color = color;
5.}
可以使用eval来转换JSON字符到Object
js 代码
1.function myEval() {
2. var str = '{ "name": "Violet", "occupation": "character" }';
3. var obj = eval('(' + str + ')');
4. alert(obj.toJSONString());
5.}
或者使用parseJSON()方法
js 代码
1.function myEval() {
2. var str = '{ "name": "Violet", "occupation": "character" }';
3. var obj = str.parseJSON();
4. alert(obj.toJSONString());
5.}
下面使用prototype写一个JSON的ajax例子。
先写一个servlet (我的是servlet.ajax.JSONTest1.java)就写一句话
java 代码
1.response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");
再在页面中写一个ajax的请求
js 代码
1.function sendRequest() {
2. var url = "/MyWebApp/JSONTest1";
3. var mailAjax = new Ajax.Request(
4. url,
5. {
6. method: 'get',
7. onComplete: jsonResponse
8. }
9. );
10.}
11.
12.function jsonResponse(originalRequest) {
1. alert(originalRequest.responseText);
2. var myobj = originalRequest.responseText.parseJSON();
3. alert(myobj.name);
4.}
prototype-<st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.5.1</st1:chsdate>.js中提供了JSON的方法,String.evalJSON(), 可以不使用json.js, 修改上面的方法
js 代码
1.function jsonResponse(originalRequest) {
2. alert(originalRequest.responseText);
3. var myobj = originalRequest.responseText.evalJSON(true);
4. alert(myobj.name);
5.}
JSON还提供了java的jar包 http://www.json.org/java/index.html API也很简单,下面举个例子
在javascript中填加请求参数
js 代码
1.function sendRequest() {
2. var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");
3. var pars = "car=" + carr.toJSONString();
4.
5. var url = "/MyWebApp/JSONTest1";
6. var mailAjax = new Ajax.Request(
7. url,
8. {
9. method: 'get',
10. parameters: pars,
11. onComplete: jsonResponse
12. }
13. );
14.}
使用JSON请求字符串就可以简单的生成JSONObject并进行解析,修改servlet添加JSON的处理(要使用json.jar)
java 代码
1.private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {
2. String s3 = request.getParameter("car");
3. try {
4. JSONObject jsonObj = new JSONObject(s3);
5. System.out.println(jsonObj.getString("model"));
6. System.out.println(jsonObj.getInt("year"));
7. } catch (JSONException e) {
8. e.printStackTrace();
9. }
10. response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");
11. }
同样可以使用JSONObject生成JSON字符串,修改servlet
java 代码
1.private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {
2. String s3 = request.getParameter("car");
3. try {
4. JSONObject jsonObj = new JSONObject(s3);
5. System.out.println(jsonObj.getString("model"));
6. System.out.println(jsonObj.getInt("year"));
7. } catch (JSONException e) {
8. e.printStackTrace();
9. }
10.
11. JSONObject resultJSON = new JSONObject();
12. try {
13. resultJSON.append("name", "Violet")
14. .append("occupation", "developer")
15. .append("age", new Integer(22));
16. System.out.println(resultJSON.toString());
17. } catch (JSONException e) {
18. e.printStackTrace();
19. }
20. response.getWriter().print(resultJSON.toString());
21. }
js 代码
1.function jsonResponse(originalRequest) {
2. alert(originalRequest.responseText);
3. var myobj = originalRequest.responseText.evalJSON(true);
4. alert(myobj.name);
5. alert(myobj.age);
6.}
参考
http://www.json.org/js.html
http://www.blogjava.net/Jkallen/archive/2006/03/28/37905.html
http://www.json.org/
http://www.prototypejs.org/learn/json
http://www.json.org/java/index.html
http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/index.html
分享到:
相关推荐
3. **JSON与JavaScript对象**:在JavaScript中,JSON对象可以直接转换为JavaScript对象,反之亦然,这得益于JavaScript语言的特性。 4. **安全性**:在处理用户输入的JSON数据时,需要注意JSON Hijacking和JSON ...
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
总之,JSON与JavaScript对象之间的序列化和反序列化是数据交换的核心,它简化了客户端与服务器之间的数据交互,同时也提高了数据的可移植性和可读性。了解并熟练掌握JSON的使用,对于任何Web开发者来说都是至关重要...
### JS中Json对象 #### JSON概述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON是基于JavaScript的一个子集,采用完全独立于编程语言的文本...
json.js json.js json.js json.js json.js json.js json.js json.js json.js json.js json.js json.js json.js json.js json.js json.js json.js
总结,`jQuery.json.js`这个文件可能是jQuery的一个扩展插件,专门用于增强jQuery对JSON的支持。在实际项目中,通过使用jQuery提供的这些方法,开发者可以轻松地处理JSON数据,实现与服务器的高效通信。同时,理解...
在JavaScript中,JSON主要用于对象与字符串之间的转换。原生的JSON对象在ECMAScript 5及以上版本中被引入,但一些旧的浏览器如IE6和7并不支持。这时,json2.js就显得尤为重要,因为它提供了JSON.parse()和JSON....
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它基于JavaScript的一个子集,格式简洁且易于读写,同时也易于机器解析和生成。在进行开发时,我们常常需要对...
总结来说,json2.js是一个解决旧版JavaScript引擎中JSON支持问题的库,提供JSON.parse()和JSON.stringify()等方法,使得在不支持JSON的环境中也可以进行JSON数据的解析和序列化操作。随着浏览器技术的发展,它的使用...
**jQuery的JSON与XML转换** `jquery.json2xml.js` 脚本允许开发者将JSON对象转换为XML字符串。在JavaScript中,你可以通过创建一个JSON对象,然后调用这个插件的方法,将其转换成XML格式。这样可以方便地将JSON数据...
`json2.js`是一个JavaScript库,由 Douglas Crockford 创建,主要用于在不支持JSON的旧版浏览器中实现JSON的解析和序列化。 ### JSON2.js 的主要功能 1. **JSON解析**:`json2.js` 提供了一个`JSON.parse()`方法,...
标题中的“Json Js 文件包下载”指的是这个压缩包包含了一系列与JSON相关的JavaScript文件。这些文件可能是用于处理JSON数据的库或者工具,帮助开发者在JavaScript环境中进行数据的序列化和反序列化操作。 具体到...
"json.js" 可能是一个JavaScript库,比如著名的`json2.js`或`jQuery`等,它们提供了将JavaScript对象转换为JSON字符串以及从JSON字符串解析成JavaScript对象的功能。 在JavaScript中,原生支持JSON对象,提供了`...
这个项目专注于使用纯JavaScript来实现JSON与JavaScript对象之间的转换,这对于数据传输、存储以及在前端和后端之间进行通信至关重要。 首先,我们需要理解JSON的基本结构。JSON是一种文本格式,主要由键值对组成,...
在本主题中,我们主要讨论的是JSON与JavaScript的关系以及如何在JavaScript环境中使用jQuery处理JSON数据。 `jQuery-3.1.1.min.js`是jQuery库的一个版本,它是一个广泛使用的JavaScript库,提供了许多便利的DOM操作...
JSON-js-master 是一个开源项目,主要关注于JSON(JavaScript Object Notation)在JavaScript中的实现与应用。JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析...
JSON2.js是一个JavaScript库,由Douglas Crockford开发,主要目的是为了在旧版本的JavaScript引擎中提供完整的JSON支持。 在JavaScript中,JSON对象是原生支持的,但在一些较老的浏览器或环境中,如IE6和IE7,它们...
json2.js: This file creates a JSON property in the global object, if there isn't already one, setting its value to an object containing a stringify method and a parse method. The parse method uses ...
标题中的“json.js”和“json2.js”可能是指两个不同的JSON解析和序列化库,用于JavaScript环境。这两个文件可能是为了在浏览器环境中处理JSON数据而提供的工具。下面分别对它们进行详细的解释: 1. **json.js**:...