javaScript 中创建json/转换字符串为json

在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 了.

原文地址:https://www.cnblogs.com/predisw/p/4785955.html