一、Json的简单介绍
从结构上看,所有的数据最终都可以分成三种类型:
第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。
第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”。
第三种类型是mapping(映射),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作hash(散列)或dictionary(字典),比如“首都:北京”。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它的规则非常简单并且是 有趣 的:
1) 并列的数据之间用逗号(“,”)分隔。
2) 映射用冒号(“:”)表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号(“{}”)表示。
按照这个规则可以作以下理解:
1.数组用“[]”创建,对象用“{}”创建,并且使用Json基本都是用[]或者{}创建的数组或对象,否则一个普通的字符串是没有意义的;
2.无论是数组还是对象,之间的元素都用“,”隔开;
3.对象内部,(属性的)名称和值用“:”隔开,并且必须要用“:”隔开,不可单独存在属性名或者值;
4.对象和数组可以互相嵌套,即数组中的一个元素可以是一个对象也可以是一个数组,同理对象中的一个属性的值可以是一个对象也可以是一个数组。
二、事例
1.
var china= {beijing:{name:"北京",area:"16000",haidian:{name:"海淀区"}},
shanghai:{name:"上海",area:"10000",minhang:{name:"闵行区"}}};
alert(china.beijing.haidian.name);
alert(china.shanghai.minhang.name);
分别弹出“海淀区”和“闵行区”。
2.
var ourcountry=[["北京市"],["上海市"],["合肥市","芜湖市","蚌埠市"]];
alert(ourcountry[2][1]);
弹出“芜湖市”。
3.
var zhongguo={provinces:[{name:"北京",cities:[{name:"北京市",quxian:["海淀区","朝阳区","东城区","西城区"]}]},
{name:"安徽省",cities:[{name:"芜湖市",quxian:["繁昌县","芜湖县","南陵县","三山区"]},{name:"合肥市",quxian:["肥西县","蜀山区","庐阳区"]}]},
"湖北省"
]};
var str = "中国:{\n";
for(var i = 0; i < zhongguo.provinces.length; i++)
{
if(zhongguo.provinces<wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">.cities != null)</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">{</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">str += zhongguo.provinces</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">.name + "{";</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">for(var j = 0; j &lt; zhongguo.provinces</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">.cities.length; j++)</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">{</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">if(zhongguo.provinces</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">.cities[j] != null)</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">{</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">str += zhongguo.provinces</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">.cities[j].name + "{";</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">for(var k = 0; k &lt; zhongguo.provinces</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">.cities[j].quxian.length; k++)</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">{</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">str += zhongguo.provinces</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">.cities[j].quxian[k];</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">if(k != zhongguo.provinces</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">.cities[j].quxian.length - 1)</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">{</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">str += ",";</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">str += "}";</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">str += "}\n";</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">str += "}";</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">alert(str);</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">弹出“</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">中国:{</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">北京{北京市{海淀区,朝阳区,东城区,西城区}}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">安徽省{芜湖市{繁昌县,芜湖县,南陵县,三山区}合肥市{肥西县,蜀山区,庐阳区}}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">}</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">”。</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">三、Json在Ajax中的应用</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">客户端可以给服务器端通过地址栏或者post很容易的提交数据,但是服务器端处理完数据之后,将计算的结果信息回传给客户端时就存在了一定的难度,特别是 数据量较大时。这个时候数据的格式成了关键,按照某种格式可以很方便的进行数据的组装,然后可以很方便的进行解析。使用Json便是一种很好的策略。在服 务器端,按照Json的格式拼装好一个字符串,响应给客户端。客户端如何进行解析呢?一般有两种策略(两种策略的名称是自己给的名字,不一定很合理,但是 思路应该是没有问题的):</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">1.直接解析</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">var json = eval('(' + result + ')');</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">通过上面这个表达式,就完成了将服务器端响应给客户端的Json格式的字符串解析成了一个Json(格式的)对象,名称为“json”,通过“json.”或者“json[]”的方式便可进行数据访问。</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">2.间接解析</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">var json = "r=" + result;</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">eval(json);</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">当然上面行代码可以合并为:eval("r=" + result);</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">通过上面的计算,也可以将服务器端响应给客户端的Json格式的字符串解析成了一个Json(格式的)对象,但是该对象名称为“r”,通过“r.”或者“r[]”的方式可进行数据访问。</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">总结:Json是一种简单的数据交换格式,它几乎可以很好的代替xml让服务器之间灵活的交换数据。</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">四、JavaScript中的数组和对象</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">在JavaScript中,通常用[]创建的数据格式称为数组,用{}创建的东西称为对象。</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么到底该用哪一种呢?</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">其实数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">当然,数组和对象的另一个区别是,数组中的数据没有“名称”(name),对象中的数据有“名称”(name)。但是问题是,很多编程语言中,都有一种叫 做“关联数组”(associativearray)的东西。这种数组中的数据是有名称的。比如在javascript中,可以这样定义一个对象:</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">var a={"城市":"北京","面积":16800,</span><span color="#333333" style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">有趣</span><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">,"人口":1600};</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">但是,也可以定义成一个关联数组:</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">var a = new Array();</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">a["城市"]="北京";</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">a["面积"]=16800;</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">a["人口"]=1600;</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">这样一来好像数组和集合就没有区别了,其实不是,在Javascript语言中,关联数组就是对象,对象就是关联数组。通过第二种方式创建的数组和通过 []方式创建的数组是有很大的区别的,在第二个方式创建的“数组”中,也可以和第一种方式类似,通过“a.城市”来得到“北京”,“a.人口”来得到 “1600”,但是它和第一种方式创建的对象又是有区别的,通过第一种方式定义的a是没有length属性的,二通过第二种方式定义的a有,可是值为0, 可见里面的差别还是有的,要想具体搞清楚,恐怕得看看底层的一些实现代码了。</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">当 eval 返回的 json 值时,提示 Error: Invalid Label 摘要: 我们经常会在服务器端返回 json 格式的值,这样可以直接在脚本中当作完整的对象来使用,但是,许多新手通常都会遇到一个错误提示:Invalid Label ,这个问题通常会让人苦恼不堪,因为明明正确的 json 格式,却提示错误。如果你遇到此问题,那赶快看看本文的内容吧!</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">我们经常会在服务器端返回 json 格式的值,这样可以直接在脚本中当作完整的对象来使用,但是,许多新手通常都会遇到一个错误提示: Invalid Label ,这个问题通常会让人苦恼不堪,因为明明正确的 json 格式,却提示错误。</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">假如你从服务器端返回的是 json 格式的字符串:</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">&gt;</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">当你在脚本中用 eval 的方式运行:</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">&gt;</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">这时会提示 :</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">Error: Invalid Label</span><wbr style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"></span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">实际上,我们的 json 格式并没有错误,只是在 eval 的时候,要把你的 json 值用 “()” 括号括起来:</span><br style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px"><span style="color:rgb(51,51,51); font-family:Verdana,Arial,Helvetica,sans-serif; font-size:13px; line-height:23px">&gt; var result = eval("(" + o.responseText + ")"); help001</span> </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

json数组对象和对象数组相关推荐

  1. JSON——入门语法、对象、数组

    JSON是什么 JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更 ...

  2. 小汤学编程之JavaScript学习day03——对象、Array数组、String字符、Date日期、JSON

    一.JS中的对象 二.Array数组 1.特点     2.数组的定义     3.常用方法     4.数组的遍历 三.String字符 1.定义     2.常用方法 四.Date日期 1.定义  ...

  3. php中json字符串转json对象数组对象,php – 将JSON字符串解析为数组,而不是对象

    您正在尝试将对象视为数组,而对象不是数组,它是一个对象. 每次在JSON中看到{}时,这意味着"这些神圣括号中包含的内容是动态对象".当你看到[]时,这意味着"看哪!我是 ...

  4. js json数组_JaveScript对象篇和数组篇

    对象类型 1.对象 一种事物的抽象 对象打包数据后的信息查找速度和信息传输速度都会得到提高 多个相似对象可以再次抽象成类 对象是类的具象化,实例化 类是对象的抽象化 js中没有类的概念,但是js使用函 ...

  5. java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法

    一.前台 // 转换成对象 var myObject = JSON.parse(_data); alert("对象:"+myObject.msg); // 转换成数组 var my ...

  6. javascript数组——新建数组、访问数组、遍历数组的方法、数组对象的方法、冒泡排序算法、json的正反序列化

    目录 数组 通过构造函数的三种方法 字面量创建数组方式 访问数组 遍历数组的方法 遍历:遍历就是把数组中的元素从头到尾都访问一次 操作数组对象的方法 删除和添加 delete与Vue.delete区别 ...

  7. 树形json扁平化,一维数组树状化,对象深拷贝,元素后插入新元素,格式或动态路由等常用js合集

    索引 一.在元素后面插入一个新的元素. 二.对象或者数组的深拷贝. 三.从服务器端获取到动态路由表的格式化. 四.json树形数据扁平化处理(变成一维数组) 五.一维数组转化为树状结构对象. 六.防抖 ...

  8. json 解析 转java对象数组对象数组对象_json字符串转java对象数组

    需要引入json-lib-2.2-jdk15.jar和ezmorph-1.0.6.jar包 String itemStar = request.getParameter("itemStar& ...

  9. java String、Json对象与byte数组转换

    用途 测试String对象与byte数组转换方式 测试Json对象与byte数组转换方式 源代码 import java.io.UnsupportedEncodingException; import ...

最新文章

  1. 无法使用xcode打出ipa包的解决方法
  2. 详解设计模式在Spring中的应用
  3. 农用地包括哪些地类_征用土地公告应当包括哪些内容?|楹庭拆迁律师
  4. php 文件查找类,PHP类搜索定位目录树的具体实现方式解析
  5. 2017(深圳) .NET技术分享交流会 第二期,将有网络直播
  6. 人工智能连接学派和符号学派的发展历程图
  7. Redis 入门指南 pdf
  8. python从入门到精通-100G Python从入门到精通全套资料!
  9. 《深度学习》花书训练营day01-线性代数
  10. 《CSS权威指南》读书笔记10
  11. 数据源:SHP数据下载平台
  12. 「HEOI 2014」南园满地堆轻絮
  13. 用计算机计算勾股定理,勾股定理电脑计算器
  14. 计算机网络技术ip地址计算,计算机网络原理-IP地址计算题.doc
  15. 不求人小白也能搭建私有云盘,焕然一新体验
  16. dedecms如何在首页调用会员信息(会员头像和名字等)
  17. ORACLE数据库报错ORA-00910: specified length too long for its datatype
  18. 群晖用php装aria2,在群晖安装整套下载管理工具“Aria2 + AriaNg + File Manager”
  19. 计算机专业创新创业点,计算机专业学生创新能力培养
  20. 从TS文件中提取DVB Subtitle字幕的有效方法

热门文章

  1. 使用reflux进行react组件之间的通信
  2. percona-toolkit 之 【pt-deadlock-logger】说明
  3. 混IT,靠的是能力,不是技能
  4. ESFramework网络通信框架介绍之(5)――消息分派器IMessageDispatcher
  5. 关于IE、Firefox、Opera页面呈现异同(转载)
  6. FAT32,EXFAT,FAT16和FAT12的所有信息
  7. JAVA嵌入运行Groovy脚本
  8. [转]How to Improve Entity Framework Add Performance?
  9. 生成32位字母数字的随机数
  10. USB设备的插入检测