如何从JSON字符串打印数组

时间:2016-03-22 14:58:33

标签: javascript json

我是JSON的新手,我无法弄清楚如何打印键值对,这是我的JSON代码:



{
  "name": "open",
  "auto": true,
  "contexts": [],
  "userNebolaK": [
    {
      "data": [
        {
          "text": "open"
        }
      ],
      "isTemplate": false
    }
  ],
  "responses": [
    {
      "resetContexts": false,
      "action": "doSomeAction",
      "affectedContexts": [],
      "parameters": [
        {
          "required": false,
          "name": "para"
        }
      ],
      "this": "one moment please"
    }
  ],
  "state": "UNKNOWN",
  "priority": 500000,
  "webhookUsed": false
}




和HTML



<!DOCTYPE html>
<html>
    <head>
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
        <meta content="utf-8" http-equiv="encoding">
        <title> </title>
        <script src='http://code.jquery.com/jquery-1.7.1.min.js'></script>
    </head>
    <body>
        <script type="text/javascript">
            //$.getJSON('testing3.json', function(dataE) {
            //    document.write(dataE.user);
            //})
            $.getJSON('testing.json', function(data) {
                $.each(data, function(target1) {
                    console.log(target1);
                })
            })
        </script>
    </body>
</html>
&#13;
&#13;
&#13;

我需要打印对应于=&gt;中文字的值UserNebolaK数据文本 也是UserNebolaK-isTemplate

提前致谢!

2 个答案:

答案 0 :(得分:1)

您可以使用点表示法访问这两个值。假设您的json存储在名为jsonData的变量中,它将如下所示:

console.log(jsonData.userNebolaK.data[0].text);

console.log(jsonData.userNebolaK.isTemplate);

值得注意的是userNebolaK.data是一个数组,这就是为什么我们需要上面代码中的[0]来访问它,但是如果该数组中有多个元素,你可能需要做一些逻辑:

for (var i=0; i<jsonData.userNebolaK.data.length; i++) {
    console.log(jsonData.userNebolaK.data[i].text);
}

for循环将遍历userNebolaK.data数组中的所有值并记录每个值。如果要查找特定的一个,则可以在循环的每次迭代中应用类似if语句的条件。

答案 1 :(得分:0)

如果你使用jQuery,那么你可以将json解析为一个对象并使用它:

var json = $.parseJSON(json);
$.each(json.fragen, function(index){console.log(this);});