javascript中使用JSON

来源:互联网 发布:java socket.flush 编辑:程序博客网 时间:2024/05/22 15:30

在进行web开发的时候,我们经常要用到json,那么如何在java后台或者js中解析json就显得非常重要,这次我就讲讲如何在js中使用json吧。
现在我以微信公众号开发中的一个例子来做演示,比如我们需要通过微信服务器获取某一天或是某个日期段的新增用户的人数。用户分析数据接口(包括接口列表中的所有接口)需要向相应接口调用地址POST以下示例数据包,比如:

{     "begin_date": "2015-12-01",     "end_date": "2015-12-16"}

正常情况下,获取用户增减数据接口的返回json数据包如下:

{     "list": [         {             "ref_date": "2015-12-16",             "user_source": 0,             "new_user": 16,             "cancel_user": 2        }    //后续还有ref_date在begin_date和end_date之间的数据    ]}

那么我们通过request请求微信服务器后,服务器给我们返回了这个数据,我们可以在js中进行处理(比如ajax请求后返回的这个数据)
下面开始正题:

1.使用eval方式解析,恐怕这是最早的解析方式了:一般不推荐

var str= '{"list":[{"ref_date": "2014-12-07", "user_source": 0, "new_user": 0, "cancel_user": 0}]}'eval("(" + str + ")");Object {list: Array[1]}list: Array[1]0: Objectcancel_user: 0new_user: 16ref_date: "2015-12-16"user_source: 0__proto__: Objectlength: 1__proto__: Array[0]__proto__: Objecttypeof eval("(" + str + ")")"object"

可见,通过这个方法,返回的是一个js的object类型的值。

2.使用浏览器自带原生json对象中的JSON.parse方法:

var str= '{"list":[{"ref_date": "2015-12-16", "user_source": 0, "new_user": 16, "cancel_user": 0}]}'undefinedvar jsonObj = JSON.parse(str)undefinedjsonObj Object {list: Array[1]}list: Array[1]0: Objectcancel_user: 0new_user: 16ref_date: "2015-12-16"user_source: 0__proto__: Objectlength: 1__proto__: Array[0]__proto__: Object
  1. 使用Jquery提供的parseJSON方法(使用该方法需引入jquery文件):
$.parseJSON(str)Object {list: Array[1]}

也就是说可以通过这三种方法进行解析:
var jsonObj = eval(“(” + str + “)”);
var jsonObj = JSON.parse(str);
var jsonObj = $.parseJSON(str);
后面就可以获取新增用户的值了!

var newUserNum = jsonObj["list"][0]["new_user"]16

json对象序列化成json字符串:
使用浏览器自带的JSON对象中的JSON.stringify方法:

var obj = new Object();obj.begin_date = "2015-12-01";obj.end_date = "2015-12-16";var str = JSON.stringify(obj);str"{"begin_date":"2015-12-01","end_date":"2015-12-16"}"

以上就是如何在js中进行与json相关的操作了!

0 0