帮助循环JSON对象

时间:2011-01-24 13:45:45

标签: javascript json loops

您好 在php中进行查询并使用json_encode将结果转换为JSON后,我有:

{"ga:visits":"59","ga:pageviews":"117","ga:timeOnSite":"4775.0","average_time_on_site_formatted":"0:01:20","pages_per_visit":"1.98"}

我的问题是如何循环它并将键和值存储在不同的变量中。

我不是一个javascript人,所以请帮忙并提供详细信息。

最好的问候

3 个答案:

答案 0 :(得分:3)

您需要先将JSON字符串解析为Javascript对象。现在大多数浏览器都在window.JSON。{/ p>中支持原生浏览器

var myObj = JSON.parse('{"ga:visits":"59","ga:pageviews":"117","ga:timeOnSite":"4775.0","average_time_on_site_formatted":"0:01:20","pages_per_visit":"1.98"}');

之后,您可以循环遍历keys

for(var key in myObj) {
    console.log(key, ' is: ', myObj[key]);
}

如果你想在“老式”浏览器中使用它,比如IE7及以下版本,你需要使用http://www.json.org中的json2.js来拥有相同的功能。

答案 1 :(得分:1)

var parsedObject = JSON.parse(str); //str - json string in your example
for(var key in parsedObject){
   // to access each key name - use "key"
   // to acces each value use parsedObject[key]
   document.writeln("key:" + key + "; value: " + parsedObject[key]);
}

答案 2 :(得分:0)

我建议用

之类的东西来评估它

var obj = eval(jsonString);

这会将整个字符串转换为包含字段的对象:

  • GA:访问
  • GA:网页浏览
  • GA:timeOnSite

然后,您可以按名称访问每个变量,例如obj.pages_per_visit