json字符串与对象的转换

来源:互联网 发布:数据库系统概论 答案 编辑:程序博客网 时间:2024/06/09 18:14

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 identifiervar obj3 = eval(str2);                  //正确,=itselfvar obj1 = JSON.parse(str1);     //正确,转为json对象var obj2 = JSON.parse(str2);    //Unexpected token o in JSON at position 1var 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);  //wangconsole.log(obj2[0].name);  //wangconsole.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 1var obj3 = JSON.parse(str3);    //SyntaxError: Unexpected token n in JSON at position 1var obj4 = JSON.parse(str4);    //SyntaxError: Unexpected token ' in JSON at position 1
原创粉丝点击