我有一个像这样的JSON数组
var filter_value_data = [{"Status":[{"name":"Open","id":"1"},{"name":"Pending","id":"2"},{"name":"Resolved","id":"3"},{"name":"Closed","id":"4"},{"name":"Evaluation","id":"5"}]},{"Payment Status":[{"name":"Paid","id":"10"},{"name":"UnPaid","id":"11"},{"name":"Part Paid","id":"12"}]},{"Priority":[{"name":"Low","id":"6"},{"name":"Medium","id":"7"},{"name":"High","id":"8"},{"name":"Urgent","id":"9"}]}]
我尝试过filter_value_data [“状态”]这显然是错误的。如何使用Status
等名称获取Status,Payment Status
的JSON元素?
答案 0 :(得分:2)
filter_value_data
是一个数组(包含[]
),因此请使用filter_value_data[0].Status
获取具有属性"Status"
的第一个元素对象。
格式化代码以查看结构的层次结构总是好的:
var filter_value_data = [
{
"Status": [
{
"name": "Open",
"id": "1"
}, {
"name": "Pending",
"id": "2"
}, ...
]
}, {
"Payment Status": [
{
"name": "Paid",
"id": "10"
}, ...
]
}, {
"Priority": [
{
"name": "Low",
"id": "6"
}, ...
]
}
];
答案 1 :(得分:0)
使用您当前的JSON,您无法仅使用名称获取元素。
您可以使用filter_value_data[0]['Status']
获取状态,使用filter_value_data[1]['Payment Status']
获取付款状态。
这是因为键位于数组中的单独对象中。
要使用filter_value_data['Status']
获取它们,您需要将JSON更改为
var filter_value_data = {
"Status":[
{"name":"Open","id":"1"},
{"name":"Pending","id":"2"},
{"name":"Resolved","id":"3"},
{"name":"Closed","id":"4"},
{"name":"Evaluation","id":"5"}
],
"Payment Status":[
{"name":"Paid","id":"10"},
{"name":"UnPaid","id":"11"},
{"name":"Part Paid","id":"12"}
],
"Priority":[
{"name":"Low","id":"6"},
{"name":"Medium","id":"7"},
{"name":"High","id":"8"},
{"name":"Urgent","id":"9"}
]
};
我在手机上写了这个,所以格式不像往常那么好。我会尽快改变它。
答案 2 :(得分:0)
您可以使用以下代码,它将返回状态对象
filter_value_data[0]['Status']
filter_value_data[0]['Payment Status']
获取您使用的单值:
filter_value_data[0]['Status'][0]['name']
答案 3 :(得分:0)
使用您当前的JSON,创建一个可能对您有所帮助的结果。
JS:
$.each(filter_value_data,function(ind,val){
var sta = val.Status; // Status Object get displayed
for(var i=0;i<sta.length;i++){
var idVal= sta[i].id;
var nameVal = sta[i].name;
Statusarray.push(idVal,nameVal);
console.log(Statusarray);
}
})