JSON对象、JSON字符串的相互转换

时间:2024-01-31 07:10:25

JSON对象、JSON字符串的相互转换

 


json的格式:

第一种方式:

  单一的json字符串,转换成json对象时,需要 eval(\'(\' + json + \')\');这样的格式,中间需要加括号

   var json = \'{ "username  ": \' + "\"" + username + "\"" 

                       + \', "性别":\' + "\"" + sex + "\"" 

                       + \'}\';

 

这里将json字符串转换成json对象有两种方法,分别是eval()和JSON.parse()(通常用eval)

1. var JSONObject = eval(\'(\' + json + \')\'); 将json字符串转换成json对象

2. var JSONObject = JSON.parse(json);

注意当用JSON.parse()时,可能会出现JSON未定义的页面js错误

解决方法:关闭浏览器兼容模式

数据访问方式:

var username = JSONObject.username  ;

var sex = JSONObject.sex  ;

 

 

第二种:json数组

var jsonArr = ‘[{ "username ": username, "sex ": sex},{ "username ": username1, "sex ": sex1}]’;

和上面一样,将json字符串转换成json对象有两种方法,分别是eval()和JSON.parse()(通常用eval)

1. var JSONObject = eval(jsonArr); 将json字符串转换成json对象

2. var JSONObject = JSON.parse(JSON.stringify(jsonArr));

这里,将json数组转换成json对象时,parse时,必须传入的是字符串的格式,所以首先必须将数组对象解析成字符串,这里就用到了JSON.stringify(),将对象转换成字符串后,然后用JSON.parse()将json字符串转换成json对象

思路 :js数组对象-->字符串-->json对象

JSON.stringify():js数组对象转换后的字符串 "[{"\u59d3\u540d":"Alltas","\u6027\u522b":"\u7537","\u5e74\u9f84":"22"}]"

JSON.parse():将上述字符串转换成json对象

然后就可以利用json对象的属性来访问各属性的值了

属性就相当于key,值是value。Key-value键值对形式

数据访问:

var username = JSONObject[0].username  ;

 var sex = JSONObject[0].sex  ;

 

建议:属性用英文,尽量不要用中文。

 

第三种:json数组(与第二种略有区别)

var txt = \'{"employees":[\' +

\'{"firstName":"Bill","lastName":"Gates" },\' +

\'{"firstName":"George","lastName":"Bush" },\' +

\'{"firstName":"Thomas","lastName":"Carter" }]}\';

 

数据访问:

var obj = eval ("(" + txt + ")");

firstName = obj.employees[1].firstName

lastName = obj.employees[1].lastName