Javascript 迭代JSON对象字符串

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/

我是个傻瓜。在创建JSON字符串并将其传递给javascript函数之后,我有一个由google gson API创建的JSON字符串。在javascript变量中,我有一个字符串,如下所示

'{"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
只是我选择的一个额外安全的东西(虽然这里肯定不需要它——只是我养成的习惯)