我将以下示例json数据作为输入,
var JSONDATA =
{
"MainNode": {
"_attributes": {
"class": "ABC",
"projectclass": "MyProject",
"prjname": "PrjName",
"enabled":"true"
},
"PrjProp": {
"_attributes": {
"name": "MyProject.save"
},
"_text": true
}
}
}
使用Jquery或Javascript,我希望首先获得"projectclass"
值“_attributes”。 JSON对象中可能有多个"_attributes"
,但只需要来自第一个(固定)"projectclass"
的{{1}}(已修复)。
这可以像, 的console.log(JSONDATA.MainNode._attributes.testclass);
但"_attributes"
未修复,可以是"MainNode"
。那么如何处理这个变量呢?我试过,"OtherNode"
显示主节点名称,但如何在console.log(Object.keys($scope.testplan)[0]);
中将其用作变量?
请建议。 感谢
答案 0 :(得分:2)
您必须以JSONDATA.MyProject._attributes.projectclass
使用[0]
访问数组的第一个元素。这是一个对象,因此您无法访问JSONDATA[0][0].projectclass
var JSONDATA = {"MyProject":{"_attributes":{"class":"ABC","projectclass":"MyProject","prjname":"PrjName","enabled":"true"},"PrjProp":{"_attributes":{"name":"MyProject.save"},"_text":true}}};
console.log( JSONDATA.MyProject._attributes.projectclass );
_attributes
下只有MyProject
。
如果你有多个项目,你可以循环:
var JSONDATA = {
"MyProject":{"_attributes":{"class":"ABC","projectclass":"MyProject","prjname":"PrjName","enabled":"true"},"PrjProp":{"_attributes":{"name":"MyProject.save"},"_text":true}},
"MyOtherProject":{"_attributes":{"class":"ABC","projectclass":"MyOtherProject","prjname":"PrjName","enabled":"true"},"PrjProp":{"_attributes":{"name":"MyProject.save"},"_text":true}}
};
for ( var key in JSONDATA ) {
console.log( JSONDATA[key]._attributes.projectclass );
}
答案 1 :(得分:0)
您无法使用{(Montreal,5),(Montreal,3),(Montreal,10),(Montreal,9),(Montreal,8),(Montreal,2),(Montreal,2),(Montreal,9)}
{(Toronto,7),(Toronto,2),(Toronto,2),(Toronto,3),(Toronto,4),(Toronto,4)}
来访问JSON对象
例如,JSONDATA[0][0]
是您的JSON对象,只需
data
projectclass