Ajax中responseText解析json格式数据

Ajax中responseText的json格式数据

  向浏览器发送数据请求,返回的responseText是json数据格式,如果要使用其中的数据,需要进行解析。下面是两种解析方法:

方法一:

  xhr = new XMLHttpRequest()  // 创建XMLHttpRequest对象

  var  data = xhr.responseText;   // 获取响应数据

  var json=JSON.parse(data);  // 使用JSON.parse()进行解析:使用JSON对象的静态方法parse(),将字符串解析为对象。

 

方法二: 

  xhr = new XMLHttpRequest()  // 创建XMLHttpRequest对象

  var  data = xhr.responseText;   // 获取响应数据

  var jsonObject=eval("("+result+")"); // 使用eval() 进行解析,其中"(" + result+ ")"的两个括号是一定要写的,意思是将其中的relult转换成表达式。但是eval() 存在安全隐患。

 

  相关知识点:表达式还是语句?

  如果在行首是一个大括号,那么它到底是表达式还是语句呢?遇到这种情况,JavaScript引擎一律解释为代码块,但是如果非要解析成对象,该怎么办呢?那就在使用括号将其包裹起来,这种情况在eval() 语句中表现的最明显了

eval('{foo:123}') // 解析成代码块——表示一个代码块中有一个foo标签,指向一个表达式123
eval('({foo:123})') // 解析为一个对象——表示一个对象,其中属性foo,指向了123

 

posted @ 2019-02-27 21:47  David-lcw  阅读(7114)  评论(0编辑  收藏  举报
My Google PageRank