繁体   English   中英

jQuery parseJSON多维数组

[英]jQuery parseJSON Multidimensional-array

我有PHP输出JSON多维数组,如下所示:

{"rates":[{"meter":"30","rate":"0.15060","ppd":"10.000"}]}

但是,在尝试在JavaSCript端解码时,我一直遇到错误。

Uncaught TypeError: Cannot read property 'length' of null

以下是jQuery方面的代码:

success: function (result) {
    console.log(result);
    $.each($.parseJSON(result), function (item, value) {
        if (item == "rates") {
            $.each($.parseJSON(value), function (i, object) {
                console.log(i + "=" + object);
            });
        }

第一个控制台日志给了我在顶部提到的输出,但由于某种原因,我无法像我想的那样访问数组。

任何帮助是极大的赞赏 :)

您不需要再次在值上调用parseJSON。 它已经是一个对象了

var result='{"rates":[{"meter":"30","rate":"0.15060","ppd":"10.000"}]}';
console.log(result);
$.each($.parseJSON(result), function (item, value) {
    if (item == "rates") {
        $.each(value, function (i, object) {
            $.each(object, function (subI, subObject) {
                console.log(subI + "=" + subObject);
            });
        });

    }
});

此外,如果你想知道错误正在发生,因为你试图在一个对象上调用parseJSON而parseJSON需要一个字符串,所以它返回null给每个函数,然后尝试根据null.length做一个for循环。

由于您只需要一个属性的内容,因此不需要遍历所有属性,因此您不需要嵌套循环。 只需获取数组并循环遍历它:

$.each($.parseJSON(result).rates, function (i, object) {
  console.log(i + "=" + object);
});

如果您正在使用专门用于获取JSON的方法,或者如果在响应上正确设置了内容类型,则您甚至不应解析结果,在调用回调方法之前已经解析了它:

$.each(result.rates, function (i, object) {
  console.log(i + "=" + object);
});

该程序显示了如何读取json并将数据存储到文本框中

$(document).ready(function(){

$.getJSON("Test.json",function(data){

         $.each(data,function(key,value){
             alert(data[key].attrib1name);
             alert(data[key].attrib2name); 
             $('input').val(data[key].enterpriseName);
             activities=data[key].activities;
             console.log(value);
         });
     });    


});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM