js jquery前台解析json字符串

一、js解析json字符串

eval()和JSON.parse()

对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:

var dataObj=eval("("+data+")");//转换为json对象

为什么eval这里要添加 "("+data+")"呢?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:

alert(eval("{}")); // undefined
alert(eval("({})"));//  [object Object]

var data="{root:[{name:'1',value:'0'},{name:'6101',value:'北京市'},{name:'6102',value:'天津市'}]}";
alert (typeof data);
var obj = eval("("+data+")");
alert(obj.root[1].value);//北京市

var data1='{"root":[{"name":"1","value":"0"},{"name":"6101","value":"北京市"},{"name":"6102","value":"天津市"}]}';
var obj1 = JSON.parse(data1);
alert(obj1.root[2].value);//天津市

alert(eval("{}")); // undefined
alert(eval("({})"));//[object Object]

JSON.parse()  json字符串的格式要求非常严格,属性名称必须是用双引号“”括起来,并且不能用单引号。

二、jquery解析json字符串

设置dataType为json就行,$.get()可以这样写$.get(url, [data], [callback], "json")

或者

$.parseJSON(字符串)也能返回对象
  <script src="js/jquery-2.1.1.min.js"></script>
  
  var obj2= $.parseJSON(data1);
    alert(obj2.root[1].name);

$.parseJSON和JSON.parse一样json字符串的非常严格

本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1731564

时间: 2024-10-29 09:05:42

js jquery前台解析json字符串的相关文章

JS中Eval解析JSON字符串的一个小问题_javascript技巧

之前写过一篇 关于 JSON 的介绍文章,里面谈到了 JSON 的解析.我们都知道,高级浏览器可以用 JSON.parse() API 将一个 JSON 字符串解析成 JSON 数据,稍微欠妥点的做法,我们可以用eval() 函数. JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包. JSON的规则很简单:

jQuery怎么解析Json字符串(Json格式/Json对象)_jquery

json数据是我们常用的一种小型的数据实时交换的一个东西,他可以利用jquery或js进行解析,下面我来介绍jquery解析json字符串方法. 我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. 上例中得到的JSON数据如下,是一个嵌套JSON: { "comments": [ { "content": "很不错嘛", "id": 1, "nickname&

jQuery怎么解析Json字符串

一.jQuery解析Json数据格式: 使用这种方法,你必须在Ajax请求中设置参数: 1 dataType: "json" 获取通过回调函数返回的数据并解析得到我们想要的值,看源码:  代码如下 复制代码 jQuery.ajax({      url: full_url,      dataType: "json",      success: function(results) {      alert(result.name);      } }); 通常情况

jQuery解析Json字符串与对象的例子

 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,跟XML不相上下,在当今得到了广泛应用.有人说,当JS遇上Json,小JJ诞生啦:我说,当Json遇上xml,世界上又多了俩兄弟.近期看EasyUi视频里也全是Json作为前后台的数据交互,Json的有两种结构,分别是对象和数组: 1.对象:对象在js中表示为"{}"扩起来的内容,数据结构为: {key:value,key:value,-} 2.数

Jquery解析json字符串及json数组的方法

  本文实例讲述了Jquery解析json字符串及json数组的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 6

js使用eval解析json

 eval的用法eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句,下面给出eval解析json的示例 先来说eval的用法,内容比较简单,熟悉的可以跳过 eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下:    代码如下: var s1='"a" +

js使用eval解析json(js中使用json)_javascript技巧

先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下: var s1='"a" + 2'; //表达式var s2='{a:2}'; //语句alert(eval(s1)); //->'a2'alert(

JS使用eval解析JSON的注意事项分析_javascript技巧

本文较为详细的分析了JS使用eval解析JSON的注意事项.分享给大家供大家参考,具体如下: 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器 返回JSON形式的字符串的形式,对于利用JSONO

javascript中eval解析JSON字符串_基础知识

我们都知道,高级浏览器可以用  JSON.parse() API 将一个 JSON 字符串解析成 JSON 数据,稍微欠妥点的做法,我们可以用 eval() 函数. var str = '{"name": "hanzichi", "age": 10}'; var obj = eval('(' + str + ')'); console.log(obj); // Object {name: "hanzichi", age: 10