json数组(json数组数据格式详解)

JSON语法规则

JSON语法是javascript对象表示语法的子集。

数据在名称/值对中

数据由逗号分隔

花括号保存对象

方括号保存数组

JSON名称/值对

JSON数据的书写格式是:名称/值对。

名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:”firstName”:”John”

JSON值

JSON值可以是:

数字(整数或浮点数)

字符串(在双引号中)

逻辑值(true或false)

数组(在方括号中)

对象(在花括号中)null

JSON正常就是由对象和数组组成,对象使用对象的方法来进行操作。数组使用数组的方法来进行操作。

数组

varourcountry=[[“北京市”],[“上海市”],[“合肥市”,”芜湖市”,”蚌埠市”]];//数组alert(ourcountry[2][1]);

JSON对象

varstatus_process={“name5″:’闲置期’,”name1″:’播种期’,”name2″:’苗期’,”name3″:’生长期’,”name4”:’采收期’}alert(status_process[“name5”]);alert(status_process.name5);//两个都为:闲置期

JSON字符串

所谓json字符串,是指该字符串变量的值与json的格式相同,但是不是json对象,比如:

vars1=”{“;vars2=”‘name5′:’闲置期’,’name1′:’播种期’,’name2′:’苗期’,’name3′:’生长期’,’name4′:’采收期’”;vars3=”}”;varstatus_process=s1+s2+s3;

JSON数组遍历

packJson=[

{“name”:”zhang”,”password”:”123″},

{“name”:”li”,”password”:”456″}

];for(varpinpackJson){//遍历json数组时,这么写p为索引,0,1alert(packJson[p].name+””+packJson[p].password);

}//或者for(vari=0;i<packJson.length;i++){alert(packJson[i].name+””+packJson[i].password);
图片[1]-json数组(json数组数据格式详解)-宏启网络科技

},JSON数组的操作,1.定义

varjosnArry=[];

2.添加

jsonArry.push(jsonObj);

3.删除

deletejsonArry[0];splice(index,length):

4.循环访问数组

a.jquery

$.each(jsonArry,function(index,item){varuserId=item.userId;

});

b.一般方式

for(vari=0;i<jsonArry.length;i++)

{varuserId=jsonArry[i].userId;

}

c.特殊方法

for(variteminjsonArry)

{varuserId=jsonArry[item].userId;//注意:此处的item不是数组项,而是数组项的索引}

JSON对象遍历

myJson={“name”:”ji”,”password”:”123″};for(varpinmyJson){//遍历json对象的每个key/value对,p为keyalert(p+””+myJson[p]);

}

字符串和json对象和json对象数组相互转换

varjsonStr=”{\”userId\”:\”001\”}”;//json对象字符串varjsonArryStr=”[{\”userId\”:\”001\”},{\”userId\”:\”002\”}]”;//json数组字符串varjsonObj=JSON.parse(jsonStr);//字符串转为json对象varjsonArry=JSON.parse(jsonArryStr);//字符串转为json数组varjsonStr=JSON.stringify(jsonObj);//json对象转为字符串varjsonArryStr=JSON.stringify(jsonArry);//json数组转为字符串alert(jsonStr);alert(jsonArryStr);alert(jsonObj.userId);alert(jsonArry[0][‘userId’]);

tips:

只有数组或者json数组才可以使用length方法。json对象使用length方法无效。

如果json对象的子元素是数组或者json数组,也可以使用length方法。可以用于遍历数据。

json数组数据格式详解

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

(1)“名称/值”对的集合(Acollectionofname/valuepairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。

(2)值的有序列表(Anorderedlistofvalues)。在大部分语言中,它被理解为数组(array)。

JSON具有以下这些形式:

1.对象

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。

2.数组

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(characterstring)。

字符串(string)与C或者Java的字符串非常相似。

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

使用范例及注意事项

1.对象的每个属性都要有双引号,否则json数据不能正常加载

我们写一个python脚本做下测试:

importjsonwithopen(“data.json”,’r’)asload_f:data=json.load(load_f)print(data)

(1){“name”:”taoeyhuang”,”age”:18}

(2){“name”:”taoeyhuang”,”age”:18,”sex”:”male”,hair:”black”}这里hair属性没有带双引号

异常日志“json.decoder.JSONDecodeError:Expectingpropertynameenclosedindoublequotes:line1column44(char43)”我们也可以看出异常的原因是双引号的问题

2.多对象范例(数组+对象)

数组中可以嵌套数组也可以嵌套对象

{“name”:”BeJson”,”url”:”http://www.bejson.com”,”page”:88,”isNonProfit”:true,”address”:{“street”:”科技园路.”,”city”:”江苏苏州”,”country”:”中国”},”links”:[{“name”:”Google”,”url”:”http://www.google.com”},{“name”:”Baidu”,”url”:”http://www.baidu.com”},{“name”:”SoSo”,”url”:”http://www.SoSo.com”}]}

?

© 版权声明
THE END
喜欢就支持一下吧
点赞77赞赏 分享
评论 抢沙发

请登录后发表评论