如何格式化json父子数组以进行json解析

时间:2014-05-10 21:20:19

标签: javascript jquery json

尝试使用jquery解析下面的json输出,但我遇到的问题是尝试解析" pprice"例如" undefined"错误输出

{ "response": [ {"instances": [ { "instanceID": "000001", "instanceOS": "FreeBSD", "instanceVersion": "10.0", "instanceVendor": "rax", "instanceVendorID": "e28f50b0-7a94-4161-a758-36010c69c8ce", "instanceBit": "64", "instanceSize": "", "instanceEnable": "1", "instanceImg": "fbsd.png" } ], "pricing": [ { "pid": "000001", "pvendor": "rax", "pcpu": "1", "pram": "512MB", "pdisk": "20", "pprice": "0.022", "pband": "", "pssd": "" } , { "pid": "000002", "pvendor": "rax", "pcpu": "1", "pram": "1GB", "pdisk": "40", "pprice": "0.06", "pband": "", "pssd": "" } , { "pid": "000003", "pvendor": "rax", "pcpu": "1", "pram": "2GB", "pdisk": "80", "pprice": "0.12", "pband": "", "pssd": "" } ], "instances": [ { "instanceID": "000002", "instanceOS": "Amazon Linux", "instanceVersion": "2014.03.1", "instanceVendor": "aws", "instanceVendorID": "ami-fb8e9292", "instanceBit": "64", "instanceSize": "", "instanceEnable": "1", "instanceImg": "aws.png" } ], "pricing": [ { "pid": "000004", "pvendor": "aws", "pcpu": "1", "pram": "512MB", "pdisk": "20", "pprice": "0.02", "pband": "", "pssd": "" } , { "pid": "000005", "pvendor": "aws", "pcpu": "1", "pram": "1.7GB", "pdisk": "40", "pprice": "0.06", "pband": "", "pssd": "" } ] } ] }

可以成功解析实例参数" instanceOS,InstanceVendor"等等,但未定义任何内部"定价"阵列。

var flavors = $.parseJSON(data);

//DISPLAY ELEMENT
$('.distros_bx').fadeIn('slow');//

 //FOREACH LOOP
 $(flavors.response).each(function(i,el) {

 var new_flavor = '<div class="os-id">' + el.instanceID + '</div><div class="os">' +   el.instanceOS + '</div><div class="os-version">' + el.instanceVersion + '</div><div class="os-bit">' + el.instanceBit + '-bit</div><div class="prices_bx">' + el.pprice + '</div>';

$('.distros_bx').append(new_flavor);

 });

JSON是有效的,但可能没有针对所需的结果进行格式化校正......提前致谢!

2 个答案:

答案 0 :(得分:0)

这不是一个好的json,你的$(flavors.response).each遍历了这个:

{
   "response":[
      {
         "instances":[],
         "pricing":[],
         "instances":[],
         "pricing":[]
     }
   ]
}

您有重复的实例和定价键。此外,虽然instanceID信息是在实例内部,但pprice信息是内部定价

答案 1 :(得分:0)

在进入圈子2.5天之后决定这个json是荒谬的,所以选择了一个更简单的解决方案。现在使用两个单独的json结果集,一个用于实例,另一个用于定价。谢谢大家的帮助!