我有这段代码试图从下面的JSON字符串中提取第一个(或两个)“ZoneId”值:
var obj = jQuery.parseJSON('{"SecureZoneSubscriptionList": {"EntityId": 8628428,"Subscriptions": [{"ZoneName": "Customer Secure Zone","ZoneId": "51",},{"ZoneName": "Wholesaler Secure Zone","ZoneId": "3573",},]}}');
alert(obj.SecureZoneSubscriptionList[0].ZoneId);
我已经查看了其他类似版本的代码,这些代码完全正确并且正常工作,但是当我将它应用到我的情况时却无法工作? 很想知道我做错了什么(这是我第一次使用JSON,还是jQuery的新手)...会感激任何帮助。 感谢。
答案 0 :(得分:2)
这是你的答案:
var obj = {
"SecureZoneSubscriptionList": {
"EntityId": 8628428,
"Subscriptions": [{
"ZoneName": "Customer Secure Zone",
"ZoneId": "51",
},
{
"ZoneName": "Wholesaler Secure Zone",
"ZoneId": "3573",
}, ]
}
};
alert(obj.SecureZoneSubscriptionList.Subscriptions[0].ZoneId);
请注意,“订阅”是您的数组所在的位置...而不是SecureZoneSubscriptionList
编辑问题家伙问另一个问题:
var obj = {
"SecureZoneSubscriptionList": {
"EntityId": 8628428,
"Subscriptions": [{
"ZoneName": "Customer Secure Zone",
"ZoneId": "51",
} ]
}
};
alert(obj.SecureZoneSubscriptionList.Subscriptions[0].ZoneId);
这仍适用于1个元素。
alert(obj.SecureZoneSubscriptionList.Subscriptions.length);
以上将告诉您元素的长度。你可以对if / else if / else
做一些条件语句来处理它......
答案 1 :(得分:1)
假设它不是拼写错误,你的JSON无效(你有很多逗号不应该在那里)。 jsonlint.com是你的朋友,我建议你在遇到这样的问题时使用它。
{
"SecureZoneSubscriptionList": {
"EntityId": 8628428,
"Subscriptions": [
{
"ZoneName": "Customer Secure Zone",
"ZoneId": "51",
},
{
"ZoneName": "Wholesaler Secure Zone",
"ZoneId": "3573",
},
]
}
}
正确:
{
"SecureZoneSubscriptionList": {
"EntityId": 8628428,
"Subscriptions": [
{
"ZoneName": "Customer Secure Zone",
"ZoneId": "51"
},
{
"ZoneName": "Wholesaler Secure Zone",
"ZoneId": "3573"
}
]
}
}
答案 2 :(得分:1)
你有几个额外的逗号,JSON规范不支持额外的逗号。例如:"ZoneId": "3573",},]}
(在括号和括号之前)。只要剩下那些,你就会遇到困难。
答案 3 :(得分:0)
你在某个地方的JavaScript字符串中有语法错误,我会假设它是一些糟糕的复制粘贴。
鉴于此限制,您需要寻找obj.SecureZoneSubscriptionList.Subscriptions[0].ZoneId
- 请注意.Subscriptions