如何解析下面的JSON响应

时间:2016-10-27 13:16:33

标签: jquery json ajax

我在ajax调用后收到以下JSON响应。

{"head":{"json":"{ 'rows': [ {'CustName' : 'JAMES', 'CustId' : 'Gans Communications'} , {'CustName' : 'JAMES', 'CustId' : 'GANNETTW'} , {'CustName' : 'JAMES', 'CustId' : 'GANNONCO'} , {'CustName' : 'JAMES', 'CustId' : 'GANSTIRE'} , {'CustName' : 'JAMES', 'CustId' : 'GANTABSW'} , {'CustName' : 'JAMES', 'CustId' : 'GANTONMI'} , {'CustName' : 'JAMES', 'CustId' : 'GANDALF'} , {'CustName' : 'JAMES', 'CustId' : 'GANDALF2'} , {'CustName' : 'JAMES', 'CustId' : 'GANDK'} , {'CustName' : 'JAMES', 'CustId' : 'GANDMTOW'} , {'CustName' : 'JAMES', 'CustId' : 'GANDOD'} , {'CustName' : 'JAMES', 'CustId' : 'GANDTOWI'} , {'CustName' : 'JAMES', 'CustId' : 'GANDY.LD'} , {'CustName' : 'JAMES', 'CustId' : 'GANE .LD'} , {'CustName' : 'JAMES', 'CustId' : 'GANICATL'} , {'CustName' : 'JAMES', 'CustId' : 'GANKEMA'} , {'CustName' : 'JAMES', 'CustId' : 'GANKEM4'} , {'CustName' : 'JAMES', 'CustId' : 'GANLYWAL'} , {'CustName' : 'JAMES', 'CustId' : 'GANN ETT'} , {'CustName' : 'JAMES', 'CustId' : 'GANNETTT'} ]}"},"body":null,"responseTime":null,"leftPanel":null}

我曾经尝试过使用Jquery将CustName和CustId显示在文本框中。但我无法正确获取值。

以下是我的示例代码:

var results_customer=data.head.json;                    
var new_val = JSON.stringify(results_customer);                 
var newresult = eval(results_customer);
alert(newresult.length);
console.log(newresult);

我收到上述值的错误。

请问有什么能帮助我取得价值吗?提前致谢

1 个答案:

答案 0 :(得分:2)

您有一个编码错误的Json字符串作为响应。 Json字符串必须用双引号"分隔,而不能用单引号'分隔。所以你必须在使用JSON.parse()方法之前转换它:

var response = {"head":{"json":"{ 'rows': [ {'CustName' : 'JAMES', 'CustId' : 'Gans Communications'} , {'CustName' : 'JAMES', 'CustId' : 'GANNETTW'} , {'CustName' : 'JAMES', 'CustId' : 'GANNONCO'} , {'CustName' : 'JAMES', 'CustId' : 'GANSTIRE'} , {'CustName' : 'JAMES', 'CustId' : 'GANTABSW'} , {'CustName' : 'JAMES', 'CustId' : 'GANTONMI'} , {'CustName' : 'JAMES', 'CustId' : 'GANDALF'} , {'CustName' : 'JAMES', 'CustId' : 'GANDALF2'} , {'CustName' : 'JAMES', 'CustId' : 'GANDK'} , {'CustName' : 'JAMES', 'CustId' : 'GANDMTOW'} , {'CustName' : 'JAMES', 'CustId' : 'GANDOD'} , {'CustName' : 'JAMES', 'CustId' : 'GANDTOWI'} , {'CustName' : 'JAMES', 'CustId' : 'GANDY.LD'} , {'CustName' : 'JAMES', 'CustId' : 'GANE .LD'} , {'CustName' : 'JAMES', 'CustId' : 'GANICATL'} , {'CustName' : 'JAMES', 'CustId' : 'GANKEMA'} , {'CustName' : 'JAMES', 'CustId' : 'GANKEM4'} , {'CustName' : 'JAMES', 'CustId' : 'GANLYWAL'} , {'CustName' : 'JAMES', 'CustId' : 'GANN ETT'} , {'CustName' : 'JAMES', 'CustId' : 'GANNETTT'} ]}"},"body":null,"responseTime":null,"leftPanel":null};

var json = response.head.json.replace(/'/g, '"');

var data = JSON.parse(json);
console.log(data);

假设您的数据不包含单引号...