在js 中创建创建json 对象:
1.直接定义json 对象
var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName": "Carter" } ];alert(employees[0].firstName); //可以看到输出为Bill
2.通过拼接字符串,再转换为json 对像.
例子1:
1 var ids=["1","2","3"]; 2 var names=["one","two","three"]; 3 4 var json="["; 5 for(var i=0;i<ids.length;i++){ 6 json+={"id":ids[i],"name":names[i]}; 7 if(i+1<ids.length)json+=","; 8 } 9 json+="]"; 10 11 json=JSON.parse(json); 12 alert(json[0]); 13 }
上面的例子1 会在 11 行 JSON.parse(json); 出错. 因为JSON.parse() 这个方法只能转换字符串为json 对象. 上面的例子中在 第6行 json 不是以字符串的方式拼接,而在第4行,json 却是以字符串的方式拼接.这个json 变量中一部分是字符串,一部分是对象,这样就不是json 字符串了,所以会解析出错.
JSON.parse() 用法:
var foo = ‘[{ "id": "1","name":"two"}]‘;
var json2=JSON.parse(foo);
alert(json2[0].id)
foo 是字符串,所以转换正确.
例子1 改成如下:
var ids=["1","2","3"]; var names=["one","two","three"]; var json="["; for(var i=0;i<ids.length;i++){ json+=‘{"id":\"‘+ids[i]+‘\","name":\"‘+names[i]+‘\"}‘; if(i+1<ids.length)json+=","; } json+="]"; alert(json); json=JSON.parse(json); alert(json[0].id);
将循环体中的json 拼接转换为字符串,这样就ok 了.
时间: 2024-12-19 02:39:12