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
作者:David-lcw
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/david-lcw/p/10447259.html