js解析JSON字符串为一个对象

下面这句话,会直接将Controller返回的json串,直接解析成json对象,不需要二次解析

$.ajax({
        type: 'post',
        dataType: 'json',
        url: ctx + '/login/purchaseList?memberId=' + memberId,
        success: function(data) {
            if (0 == data.status) {
                alert('没有数据 !');
            } else {
                var purchaseArr = data.jsonValue;
                for (var i = 0; i < purchaseArr.length; i ++) {
                    alert(purchaseArr[i].product_name);
                }
            }
        }        
    });

    @ResponseBody
    @RequestMapping("/purchaseList")
    public String purchaseList(ModelAndView mav, long memberId) {
        
        String purchaseListStr = rDubboProPurchaseService.findMemberPurchase(memberId);
        return purchaseListStr;
    }

1)第一种方法

data是json串

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

var jsonObj = eval('(' + data + ')');
                var result = jsonObj.result;
                var memberId = jsonObj.memberId;

2)第二种方法

解析方式就是使用Function对象来完成,它的典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析

var json='{"name":"CJ","age":18}';

data =(new Function("","return "+json))();

此时的data就是一个会解析成一个 json对象了.

原文地址:https://www.cnblogs.com/mjzhang/p/4613751.html