我需要输出JSON对象,如下所示:
{
"dynamicvaluenumberone":3,
"dynamicvaluenumbertwo":7
}
在某些东西中,看起来像:
dynamicvaluenumberone (3), dynamicvaluenumbertwo(7)
我发现了一些带静态值的文章或用jQuery解析JSON。我不想使用任何框架来完成这个简单的任务。
答案 0 :(得分:4)
您是否尝试过JSON.parse
?
var json = '{"dynamicvaluenumberone":3, "dynamicvaluenumbertwo":7}';
var obj = JSON.parse(json);
要访问动态键,您可以使用for...in
:
for(var i in obj) {
console.log(i + " (" + obj[i] + ")");
}
更新:根据您需要支持的浏览器,JSON
库也可在此处找到:http://www.json.org/js.html
答案 1 :(得分:1)
可以在此处找到参考JSON站点:
(它也与Felix答案中提到的Mozilla文章有关)。
可在此处找到与浏览器无关的参考JavaScript JSON解析器(从“JavaScript”语言下的json.org根站点链接):
https://github.com/douglascrockford/JSON-js
(json2.js是你想要的那个)。道格拉斯·克罗克福德的参考实现的好处在于它将使用浏览器原生的JSON解析器(如果可用的话(快速,高效 - 在IE8 +标准模式下可用,最新的Opera,Chrome,Safari,FireFox - 这就是Felix的链接所说的),仅在本机JSON解析器不可用的浏览器中回退到JavaScript实现(缓慢)。
我多年来一直在使用json2.js并强烈推荐它: - )。
说明如何使用它的简单示例(另存为“test.html”并在任何浏览器中打开):
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JSON parser test</title>
</head>
<body>
<script type="text/javascript" src="http://github.com/douglascrockford/JSON-js/raw/master/json2.js"></script>
<script type="text/javascript">
var str = "{ \"dynamicvaluenumberone\":3, \"dynamicvaluenumbertwo\":7, \"dynamicvaluenumberthree\":\"hello\" }";
var obj = JSON.parse(str);
alert(
"Parsed object type: " + typeof obj + "\n" +
"Value 1: " + obj.dynamicvaluenumberone + " (" + typeof obj.dynamicvaluenumberone + ")\n" +
"Value 2: " + obj.dynamicvaluenumbertwo + " (" + typeof obj.dynamicvaluenumbertwo + ")\n" +
"Value 3: " + obj.dynamicvaluenumberthree + " (" + typeof obj.dynamicvaluenumberthree + ")");
</script>
</body>
</html>