【问题标题】:Extract a Json from a bigger JSON in node.js从 node.js 中更大的 JSON 中提取 Json
【发布时间】:2015-07-17 03:34:47
【问题描述】:

我有一个 JSON 对象,格式如下:

[
{
    "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"
}
]

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

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

谢谢

【问题讨论】:

  • 解析 json,然后只需 arr[1]['value']。不要对 json 使用字符串操作...
  • 试试下面的代码,如果它适用于您的问题,请告诉我,
  • 我希望人们停止调用 json 字符串对象,反之亦然。如此混乱。更糟糕的是,json 对象....
  • 我很确定问题标题应该是“如何从对象中提取值”。

标签: javascript json node.js


【解决方案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;

【讨论】:

  • 你为什么要对值进行字符串化?
  • 将javascript对象转换回json
  • 你为什么要这样做?这个问题不问它。
  • 好吧,虽然你需要 json 中的值,但请参阅编辑后的答案
【解决方案2】:

正如 Marc B. 所指出的,在 JSON 上使用字符串操作有点浪费,因为 JSON 已经为您提供了对存储数据的轻松访问。我提供了一个示例,以便您了解访问您正在寻找的值是多么容易。

    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;
<p>Value: <span id="target"></span>
</p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2020-10-22
    • 2019-04-21
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多