您的位置:首页 > Web前端 > JavaScript

json字符串与对象的转换

2017-10-26 18:37 176 查看

1 一般字符串

var str1 = '{"name": "wang", "sex": "man"}';    //json字符串
var str2 = { "name": "wang", "sex": "man" };    //json对象

console.log(str1);  //string    {"name": "wang", "sex": "man"}
console.log(str2);  //object    { name: 'wang', sex: 'man' }

var obj1 = eval('(' + str1 + ')');      //正确,转为json对象
var obj2 = eval('(' + str2 + ')');      //Unexpected identifier
var obj3 = eval(str2);                  //正确,=itself

var obj1 = JSON.parse(str1);     //正确,转为json对象
var obj2 = JSON.parse(str2);    //Unexpected token o in JSON at position 1

var obj1 = JSON.stringify(str1);    //"{ \"name\": \"wang\", \"sex\": \"man\" }"
var obj2 = JSON.stringify(str2);    //{"name":"wang","sex":"man"}

//jQuery的parseJSON,要求标准json格式
var obj1 = jquery.parseJSON(str1);  //正确,转为json对象


2 数组字符串

var str1 = '[{ "name": "wang", "sex": "man" }]';

var obj1 = eval('(' + str1 + ')');  //[ { name: 'wang', sex: 'man' } ]
var obj2 = JSON.parse(str1);        //正确
var obj3 = jquery.parseJSON(str1);  //正确

console.log(obj1[0].name);  //wang
console.log(obj2[0].name);  //wang
console.log(obj3[0].name);  //wang


3 json字符串的格式要求

var str1 = '{"name": "wang", "sex": "man"}';
var str2 = "{'name': 'wang', 'sex': 'man'}";
var str3 = "{name: 'wang', sex: 'man'}";
var str4 = "{'name': wang, 'sex': man}";

var obj1 = eval('(' + str1 + ')');  //正确
var obj2 = eval('(' + str2 + ')');  //正确
var obj3 = eval('(' + str3 + ')');  //正确
//var obj4 = eval('(' + str4 + ')');    //ReferenceError: wang is not defined

//和jQuery.parseJSON一样,不是用双引号包裹都是错误的
var obj1 = JSON.parse(str1);
var obj2 = JSON.parse(str2);    //SyntaxError: Unexpected token ' in JSON at position 1
var obj3 = JSON.parse(str3);    //SyntaxError: Unexpected token n in JSON at position 1
var obj4 = JSON.parse(str4);    //SyntaxError: Unexpected token ' in JSON at position 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json 字符串 js