javascript解析json字符串,各种格式分析

javascript解析json字符串,各种格式分析

  • JS,JSON,EVAL函数说明
  • JSON.parse(字符串) 方法用于将一个 JSON 字符串转换为对象
  • JSON.stringify(对象或者数组) 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串
  • 错误1:Unexpected token o in JSON at position 1
  • 错误2:Unexpected token n in JSON at position 2

JS,JSON,EVAL函数说明

  • JSON就是一个特殊格式的字符串 ,这个字符串可以被任意语言识别,并且可以转换为任意语言中的对象,JSON在开发中主要用来数据的交互

  • JSON和js对象的格式一样,只不过JSON字符串中的属性名必须加双引号,其他的和js的语法一致

  • eval() 函数可以用来执行一段字符串形式的JS代码,并将执行结果返回

对象{}   数组[]
 js对象
 var str = {"name":"xcSharp","age":"18"}
 json对象
 var str = '{"name":"xcSharp","age":"18"}'
 eval()
 var str = '{"name":"xcSharp","age":"18"}'
 var obj = eval("(" + str + ")");
 console.log(obj);

JSON.parse(字符串) 方法用于将一个 JSON 字符串转换为对象

var str = '{"name":"xcSharp","age":"18"}'
var obj=JSON.parse(str);
alert(obj.name);
alert(obj.age);

JSON.stringify(对象或者数组) 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串

var str = {"name":"xcSharp","age":"18"}
var obj=JSON.parse(JSON.stringify(str));
alert(obj.name);
alert(obj.age);

错误1:Unexpected token o in JSON at position 1

错误源码修改前

var userList={"a":"1","b":"[{name:'lijz',age:18},{name:'lucy',age:16}]"};
var obj = JSON.parse(userList);//JSON.parse(这里是字符串,不能是对象)
var newObj=eval(obj.b);
alert(newObj[1].name);

修改后

var userList={"a":"1","b":"[{name:'lijz',age:18},{name:'lucy',age:16}]"};
var obj = JSON.parse(JSON.stringify(userList));
var newObj=eval(obj.b);
alert(newObj[1].name);

错误2:Unexpected token n in JSON at position 2

错误源码

var userList={"a":"1","b":"[{name:'lijz',age:18},{name:'lucy',age:16}]"};
var obj = JSON.parse(JSON.stringify(userList));
var newObj=JSON.parse(obj.b);
alert(newObj[0].name);

修改后

var userList={"a":"1","b":"[{name:'lijz',age:18},{name:'lucy',age:16}]"};
var obj = JSON.parse(JSON.stringify(userList));
var newObj=eval(obj.b);
alert(newObj[1].name);

你可能感兴趣的:(html,javascript,json,前端)