json定义及jquery解析json

来源:互联网 发布:用xcode编写c语言教程 编辑:程序博客网 时间:2024/05/22 03:16

一.前提

      JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。而JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。

二.JSON的两种结构

 JSON有两种表示结构,对象和数组。
 对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法  结构如代码。

{    key1:value1,    key2:value2,    ...}

其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组

数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。

[    {        key1:value1,        key2:value2     },    {         key3:value3,         key4:value4       }]
三.认识JSON字符串和JSON对象的模糊概念

   之前刚工作的时候一直搞不懂JSON字符串和JSON对象,以及他们之间的转换,后来写多了终于明白了人们所说的JSON字符串和JSON的对象

字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };

四.内容

1、json定义:

简单的json格式为[{"key1":"value1"},{"key2":"value2"}],

[]代表数组,{}代表数组中的数据对象,key1,key2是一个json对象中的key,一个json中key值唯一,value1,value2,是key键对应的值。

定义方式:

1)直接拼写json串,例:String变量,内容为 [{"attchName":"附件0","attchId":0},{"attchName":"附件1","attchId":1},{"attchName":"附件2","attchId":2}]。

2)引入json-lib.jar开源jar包,定义JSONObject对象,例:

JSONArray jsonArray = new JSONArray();
JSONObject attchJson = new JSONObject();
attchJson.put("attchId", "0");
attchJson.put("attchName", "附件0");
jsonArray.put(attchJson);
jsonArray即为一个json数据,等价于用[]的定义一个json.

复杂json定义,json中key对应的值也可以是一个json数组,如,json中封装一个任务信息,这个任务中有若干附件定义方法如下:

JSONArray taskJsonArray = new JSONArray();
JSONObject taskJsonObj = new JSONObject();
taskJsonObj.put("taskId", 100);
taskJsonObj.put("taskName", "myTask");
taskJsonObj.put("attchs", jsonArray);
taskJsonArray.put(jsonObj);

taskJsonArray为最后想要得到的json内容,

简单拼串后的形式如下:

[{"attchs":[{"attchName":"附件0","attchId":0},{"attchName":"附件1","attchId":1},{"attchName":"附件2","attchId":2}],"taskId":100,"taskName":"myTask"}]

2、js解析json

json的一般解析方式:

   var json = eval_r(jsonArray );
   for(var i=0; i
    alert("attchId:"+json[i].attchId+",attchName:"+json[i].attchName);
   }













0 0
原创粉丝点击