从node.js中更大的JSON中提取Json

时间:2015-07-16 19:18:30

标签: javascript json node.js

我有一个JSON对象,就是这种形式:

<p:inputText ...>
  <p:ajax event="change" update="..." listener="..." />
</p:inputText>

...

<p:commandButton id="submit" ... actionListener="X" />

我想从FIRST(并且只有这一个)中提取“值”(这里等于100)。 我怎么能在node.js中做到这一点?

或者我是否有义务将此JSON转换为字符串并对其进行操作? (例如子字符串)。

谢谢

2 个答案:

答案 0 :(得分:1)

将json转换为普通的javascript对象,然后你可以使用点符号来操作我们的json,然后再将生成的javascript对象转换为json。

var jsonObj = [
{
    "id": "458712e247328e4ebfafeb4d922b",
    "value": [
        1
    ],
    "location": null,
    "metadata": null,
    "at": "2015-07-16T16:33:39.113Z"
},
{
    "id": "1ghj78d8220734c00ab941f91b14e334b",
    "value": [
        100
    ],
    "location": null,
    "metadata": null,
    "at": "2015-07-16T16:33:26.819Z"
}
];
var jsObj = JSON.parse(jsonObj);

var resulJsonObj = JSON.stringify(jsObj[1].value);

如果你只是需要这个值:

var value= jsObj[1].value;

答案 1 :(得分:0)

正如Marc B.指出的那样,在JSON上使用字符串操作是一种浪费,因为JSON已经为您提供了对存储数据的轻松访问。我提供了一个示例,以便您了解访问所需值的难易程度。

&#13;
&#13;
    var data = [{
      "id": "458712e247328e4ebfafeb4d922b",
      "value": [ 1 ],
      "location": null,
      "metadata": null,
      "at": "2015-07-16T16:33:39.113Z"
    }, {
      "id": "1ghj78d8220734c00ab941f91b14e334b",
      "value": [ 100 ],
      "location": null,
      "metadata": null,
      "at": "2015-07-16T16:33:26.819Z"
    }];

    var el = document.getElementById("target");
    el.innerHTML = data[1].value;
&#13;
<p>Value: <span id="target"></span>
</p>
&#13;
&#13;
&#13;