如何在JavaScript中解析JSON数组字符串?

如何在JavaScript中解析JSON数组字符串?,javascript,json,Javascript,Json,我有一个类似这样的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":"

我有一个类似这样的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"}]}]

我尝试过筛选值数据[“状态”],这显然是错误的。如何使用
Status,Payment Status
等名称获取
Status
的JSON元素?

filter\u value\u data
是一个数组(具有
[]
),因此使用
filter\u value\u 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"
            }, ...
        ]
    }
];

使用当前的JSON,您无法单独获取名称为的元素

您可以使用
filter\u value\u data[0]['Status']
获取状态,使用
filter\u value\u data[1]['Payment Status']
获取付款状态

这是因为键位于阵列中的不同对象中。 为了使用
filter\u value\u 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"}
    ]
};

这是我在手机上写的,所以格式不像平时那么好。我会尽快更改它。

您可以使用下面的代码,它将返回状态对象

filter_value_data[0]['Status']
filter_value_data[0]['Payment Status']
要获得单个值,请使用:

filter_value_data[0]['Status'][0]['name']

使用当前的JSON,创建了一个可能对您有帮助的结果

JS:

$。每个(筛选值数据,函数(ind,val){
var sta=val.Status;//显示状态对象

for(var i=0;它不是JSON字符串,而是JavaScript(数组)Aravind:让我知道答案是不是你所期望的。当你没有回答或投票给下面的大部分答案时,我已经否决了。你会考虑接受一个,并投票赞成你认为应该得到的吗?这就是我们如何感谢人们在这个网站上所做的努力。我想提取像<代码>过滤程序。“状态”]
。我有一个所有这些名称的列表。它们是动态的。我也有一组这些名称。
$.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);
    }
})