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

Javascript 如何格式化json父子数组以进行json解析,javascript,jquery,json,Javascript,Jquery,Json,尝试使用jquery解析下面的json输出,但我遇到的问题是在尝试解析“pprice”时,例如输出了一个“undefined”错误 { "response": [ {"instances": [ { "instanceID": "000001", "instanceOS": "FreeBSD", "instanceVersion": "10.0", "instanceVendor": "rax", "instanceVendorID": "e28f50b0-7a94-4161-a758-3601

尝试使用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”等,但无法使用“pricing”数组中的任何内容进行定义

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);

 });
var-flavors=$.parseJSON(数据);
//显示元素
$('distros_bx').fadeIn('slow')//
//FOREACH循环
$(flavors.response)。每个(函数(i,el){
var new_flavor=''+el.instanceID+''+el.instanceOS+''+el.instanceVersion+''+el.instanceBit+'-bit'+el.pprice+'';
$('.distros_bx')。追加(新口味);
});

JSON是有效的,但它的格式可能没有针对所需的结果进行更正。。。提前谢谢

这不是一个好的json,您的
$(flavors.response)。每个
都会遍历以下内容:

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

您有实例和定价的重复键。此外,虽然
instanceID
info在实例中,但
pprice
info在定价中

在盘旋了2.5天后,决定使用此json,因此选择了更简单的解决方案。现在使用两个独立的json结果集,一个用于实例,另一个用于定价。谢谢大家的帮助

这是因为“pricing”是一个类似于“response”的数组。您需要循环它,或者通过索引
el.pricing[0].pprice
@Wilmer访问它。那么我如何循环“pricing”数组呢?我的代码不走运……那么,我该如何格式化JSON,使其表示:“实例”为实例的父对象,而“定价”为实例的子对象?父级--FreeBSD,64位,10.0子级--0.009子级--0.012子级--0。145@Dango好吧,似乎你有更多的价格比实例,所以这不是一个好主意。您应该将instances数组与pricings数组分开,并且每个数组只有一个:下面的代码是指向php代码和mysql数据的链接,已经尝试了好几天,但都没有成功。SQL Data@Dango抱歉,我对php了解不多,但请看一下内部连接