将属性名称检索为字符串jSon jQuery

时间:2013-07-07 11:06:23

标签: jquery json

    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"
}]

我要做的是获取周末的价值,即星期一,星期二,星期三,星期四,星期五,星期六,星期日

我一直在尝试并尝试无法找到方法。如果有办法,请建议我。

2 个答案:

答案 0 :(得分:1)

示例中的property变量已经是一个字符串,您无需转换它。

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

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

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

答案 1 :(得分:-1)

如果我以正确的方式提出您的问题,您可以获得天数值并将其记录下来:

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

如果我弄错了请求告诉我