Javascript 迭代JSON对象字符串
我是个傻瓜。在创建JSON字符串并将其传递给javascript函数之后,我有一个由google gson API创建的JSON字符串。在javascript变量中,我有一个字符串,如下所示Javascript 迭代JSON对象字符串,javascript,json,Javascript,Json,我是个傻瓜。在创建JSON字符串并将其传递给javascript函数之后,我有一个由google gson API创建的JSON字符串。在javascript变量中,我有一个字符串,如下所示 '{"validationCode":"V10291","caseNumber":"2010CF101011","documentSource":"EFILE","countyDocumentID":"CD102","documentTitle":"D Title","signedDate":"01/01/
'{"validationCode":"V10291","caseNumber":"2010CF101011","documentSource":"EFILE","countyDocumentID":"CD102","documentTitle":"D Title","signedDate":"01/01/2012","signedBy":"CPSJC","comments":"YES Comments"}'
如何迭代或获取键的值,比如我必须找到validationCode或caseNumber,但这是字符串?欢迎任何建议您可以使用
JSON将其放入本机JavaScript对象中。parse
:
var obj = JSON.parse(yourJSONString);
然后,您可以使用for in循环的标准来迭代这些键
for(var k in obj)
if ({}.hasOwnProperty.call(obj, k))
console.log(k, " = ", obj[k]);
或者直接访问特定键,如validationCode
或caseNumber
:
var caseNum = obj.caseNumber;
var validationCode = obj.validationCode;
请注意,非常旧的浏览器不支持
JSON.parse
,因此如果您想支持它们,可以使用Papa Crockford或jQuery,后者有一个实用方法。您可以为。。。在中,通过对象属性循环:
var person={fname:"John",lname:"Doe",age:25};
var x;
for (x in person)
{
document.write(person[x] + " ");
}
如果您使用的是JQuery框架,那么可以使用:
JQuery.parseJSON
如果没有,您可以使用
JSON.parse()
,也可以使用eval
(这不太安全)。谢谢您,这是一个JSON字符串。其他答案没有,因为我没有Json对象。旧的javascript真的包括IE 6吗?:)@Sandepnair-是的。甚至IE7也缺乏对JSON对象的支持。抱歉:(如果您需要支持它们,我建议您使用jQuery或crockford的json2(两者都链接在上面)来进行parsingAdam,为什么您要使用{}.hasOwnProperty.call(obj,k)
而不是obj.hasOwnProperty(k)
?另外,hasOwnProperty
检查仅在您使用扩展对象的代码时才需要。prototype
,我拒绝使用任何这样做的代码,并将膨胀添加到每个迭代属性的循环中。@JuanMendes-只是那些比抱歉更安全的东西之一。我不知道在t可能会弄乱Object.prototype
的背景,所以我想我应该把它扔进去。另外,{}.hashOwnProperty.call
而不是obj.hasOwnProperty
只是我选择的一个额外安全的东西(虽然这里肯定不需要它——只是我养成的习惯)