`

json_转转转

阅读更多

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)       {   
  7.       this .make  =  make;   
  8.       this .model  =  model;   
  9.       this .year  =  year;   
  10.       this .color  =  color;   
  11. }   

可以使用 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) {   
  13.     alert(originalRequest.responseText);   
  14.      var  myobj = originalRequest.responseText.parseJSON();   
  15.     alert(myobj.name);   
  16. }   

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

分享到:
评论

相关推荐

    ZUI2_JSON2_/UI2/CL_JSON_ui2/cl_json_abap_Ui2_cl_json_zui2_json_源

    标题中的"ZUI2_JSON2_/UI2/CL_JSON_ui2/cl_json_abap_Ui2_cl_json_zui2_json_源"可能指的是一个与ZUI2相关的项目,它利用了ABAP类/UI2/CL_JSON来解析和生成JSON数据。描述中提到,我们需要用到这个类来将JSON格式的...

    ThinkPHP6.0以上兼容mysql下JSON_CONTAINS使用

    3. 数据库设计:在设计数据库时,若业务需求允许,尽量避免大量JSON数据存储,转而采用关系型模式,以充分利用关系数据库的优化机制。 4. 错误处理:在使用`JSON_CONTAINS`时,确保JSON数据的格式正确,否则可能会...

    json_decode,json_encode 使用日志(1)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。在PHP中,`json_decode`和`json_encode`是两个非常关键的函数,用于将JSON字符串转换为PHP变量,以及...

    JSON_Trans.rar_LABVIEW转换JSON_json Labview_labivew json_labview j

    标题“JSON_Trans.rar_LABVIEW转换JSON_json Labview_labivew json_labview j”表明这是一个关于如何在LabVIEW中实现JSON转换的实践教程或示例。 描述中提到,“LabVIEW建立JSON通讯示例,通过建立簇,将数据转换成...

    批量转换json_to_dataset.py

    用labelme标注图片的时候只能进行一张图片的转换,将此代码放入E:\anaconda\Lib\site-packages\labelme\cli(conda安装目录下labelme的文件夹)替换掉原始的json_to_dataset.py 在想要得到转换后文件的文件夹中打开...

    JSON_2.0.4完整版

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它是基于JavaScript的一个子集,但设计时考虑了人类可读性和易于编写,同时也易于机器解析和生成。JSON_2.0.4...

    编译好的json_lib.lib 包含64位,32位,头文件

    JSON库在C++编程中扮演着重要角色,它允许程序以JSON(JavaScript Object Notation)格式存储和交换数据。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在本资源中,我们有一个名...

    PL/JSON(json_v1_0_4及中文文档)

    PL/JSON是一个在Oracle数据库中处理JSON数据的开源库,专为那些需要在数据库内进行JSON数据操作的应用程序设计。这个库提供了丰富的功能,包括JSON数据的解析、创建、修改和输出,使得与JSON格式的数据交互变得更加...

    json-c-master.zip_JSON_c json_json c_json-c master

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。JSON-C是JSON的一个C语言实现,它提供了一个简单的API,使得在C语言中处理JSON数据变得方便。JSON-C库...

    json-c-master_cjson_JSON_JSONC语言_json-c_

    1. **解析JSON**:`json-c`库中的`json_object_from_file()`函数可以用来解析一个包含JSON数据的文件,返回一个`json_object`指针,表示解析得到的JSON对象。`json_object_from_json_string()`则用于从JSON字符串中...

    Json_decode 解析json字符串为NULL的解决方法(必看)

    通常,发送方会使用`json_encode()`函数将数据转成JSON格式。由于直接获取的数据中可能包含HTML实体或转义字符,因此接收方在进行JSON解析之前,需要对其进行适当的处理。 处理的方法主要分为两个步骤: 1. 使用`...

    PHP_JSON.zip_JSON_json php_php json

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,因其简洁、易读、易写的特点,被广泛应用于Web服务与服务器之间的数据交互。PHP作为一种常用的服务器端脚本语言,内置了对JSON的强大支持,使得...

    json解析源码,纯c

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。本文将深入探讨一个纯C语言实现的JSON解析器——`...

    json_xml互转jar

    本文将探讨JSON与XML之间的转换,并围绕“json_xml互转jar”这个主题,介绍相关的技术知识。 首先,我们来看JSON。JSON是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,易于人阅读和编写,同时也易于...

    json_to_dataset.py

    实现了json文件批量转换,修改了类别,可自主修改labelme类别。 希望大家能多多采用,多多支持。

    json.zip_JSON_json c#_json-c

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。在C#和JSON-c(C语言的JSON库)中,处理JSON数据是...

    PW_JSON_dll+Demo(Vb.net解析Json数据的类库和demo)

    标题中的"PW_JSON_dll+Demo"指的是一个专为Vb.net设计的类库,用于处理JSON数据。这个类库提供了一系列方法,使得在Vb.net环境中解析和操作JSON变得更为简便。"Vb.net解析Json数据的类库"强调了这个工具的核心功能,...

    php中json_decode()和json_encode()的使用方法.docx

    JSON是一种轻量级的数据交换格式,因其简洁、易于阅读和编写,同时也容易被机器解析和生成,而被广泛应用于Web服务API和数据存储。 1. **json_decode()** `json_decode()`函数用于将JSON格式的字符串转化为PHP变量...

    Delphi_Json_JSON_delphi_delphijson_delphi操作json格式_delphi读写json.z

    标题"Delphi_Json_JSON_delphi_delphijson_delphi操作json格式_delphi读写json.z"表明这个压缩包包含的是关于Delphi处理JSON格式的相关资源,可能包括示例代码、库文件或教程,主要关注如何在Delphi中读取和写入JSON...

    json-c-master.zip_1.15json_json-c_json-c-master

    `json-c-master.zip_1.15json_json-c_json-c-master`这个压缩包包含了`json-c`的源码,版本号为1.15,适用于Linux、Windows等跨平台环境。 1. **JSON-C介绍**: JSON-C是一个开源项目,它提供了一个C语言的API来...

Global site tag (gtag.js) - Google Analytics