0
    var days = new Array("sun", "mon", "tue", "wed", "thu", "fri", "sat");

    $.each(data, function (i, object) {    
        $.each(object, function (property, value) {
            var propertyString = getPropertyAsString(property);
            if ($.inArray(propertyString, days) != -1)
            {
                // do something
            }
            count++;
        });
    });

以上是我用来使用 jQuery 从 json 中检索数据的代码存根。我想要做的是获取“property名称”(我已经getPropertyAsString()在嵌套中使用它$.each()作为字符串标记它,然后我想检查这个“属性名称”是否存在于天数组中。

更具体地说,下面是json:

[{
    "STID": 0,
    "VRNO": 0,
    "VRNOA": 0,
    "VRDATE": "\/Date(-62135596800000)\/",
    "PARTY_ID": null,
    "BILTY_NO": null,
    "BILTY_DATE": "\/Date(-62135596800000)\/",
    "RECEIVED_BY": null,
    "TRANSPORTER_ID": null,
    "REMARKS": null,
    "Year_srno": 0,
    "ETYPE": null,
    "NAMOUNT": 0,
    "UID": 0,
    "ORDER_VRNO": 0,
    "FREIGHT": 0,
    "PARTY_ID_CO": null,
    "SALEBILLNO": 0,
    "DISCP": 0,
    "DISCOUNT": 0,
    "CURRENCY_ID": 0,
    "EXPENSE": 0,
    "COMPANY_ID": 0,
    "VEHICLE_ID": null,
    "PARTY_NAME": null,
    "isEditted": false,
    "isDeleted": false,
    "isNew": false,
    "Mon": "0",
    "Tue": "0",
    "Wed": "0",
    "Thu": "500",
    "Fri": "0",
    "Sat": "0",
    "Sun": "0"
}]

我想做的是在最后得到工作日的值,即周一、周二、周三、周四、周五、周六、周日

我一直在尝试和尝试,但找不到方法。如果有解决方法,请建议我。

4

2 回答 2

1

您示例中的property变量已经是一个字符串,您不需要对其进行转换。

实际问题是对象中的工作日名称是大写的(“Mon”、“Tue”),但days数组中的它们是小写的(“mon”、“tue”)。如果days是您可以编辑的内容,只需将其更改为匹配对象键,或.toLowerCase()与您要比较它们的键一起使用。

if ($.inArray(property.toLowerCase(), days) != -1)

演示:http: //jsfiddle.net/PHDPp/

于 2013-07-07T11:20:10.843 回答
-1

如果我以正确的方式解决了您的问题,您可以获取天数并像这样记录它们:

for(i in days){
    console.log(days[i]+': '+yourJson[i])
}

如果我弄错了请告诉我

于 2013-07-07T11:21:04.117 回答