首页 > 解决方案 > 如何从 JSON 获取属性值并使用 node.js 以特定格式将其写入文件

问题描述

我有一个 test.json 文件,格式如下,我只想从该文件中获取链接值:

从文件系统输入文件:

{
    "5cacd1333105": {
        "type": "CORR-ID",
        "environment": "amazon",
        "tags": [
            {
                "name": "EC-6S0005704A8324S98020",
                "source": "amazonstage2ma_paymentapiplatserv#TOKEN",
                "flags": [
                    "FLAG_DYNAMIC_VALUE",
                    "FLAG_ID_LOOKUP_SUPPORTED"
                ]
            }
        ],
        "callSummary": [
            {
                "colo": "lvs",
                "pool": "slingshotrouter",
                "machine": "stage21007",
                "apiName": "GET",
                "status": "0",
                "duration": 13400.0,
                "calls": null,
                "hints": null,
                "msgTime": 1574314991130,
                "link": "https://www.amazon.qa.pilot.com/Tid-942342192424j2j234"
            },
            {
                "colo": "lvs",
                "pool": "slingshot",
                "machine": "stage21029",
                "apiName": "GET",
                "status": "0",
                "duration": 13368.0,
                "calls": null,
                "hints": null,
                "msgTime": 1574314991162,
                "link": "https://www.amazon.qa.pilot.com/Tid-12342342i842424j2j234"
            },


            {
                "colo": "lvs",
                "pool": "msmaster_userbridgedomainserv",
                "machine": "amazon1int-g_userbridgedomainserv_22",
                "apiName": "POST",
                "status": "0",
                "duration": 15.0,
                "calls": null,
                "hints": null,
                "msgTime": 1574315001625,
                "link": "https://www.amazon.qa.pilot.com/Tid-02341723424i842424j2j290"
            }

        ],
        "partial": false
    }
}

我想从上面的文件中获取以下详细信息:

    "https://www.amazon.qa.pilot.com/Tid-942342192424j2j234"
    "https://www.amazon.qa.pilot.com/Tid-12342342i842424j2j"
    "https://www.amazon.qa.pilot.com/Tid-02341723424i842424"

我只想按以下格式写入 test.js 文件。

    module.exports = 
    {
       fileNames:[
        'https://www.amazon.qa.pilot.com/Tid-942342192424j2j234',
        'https://www.amazon.qa.pilot.com/Tid-12342342i842424j2j',
        'https://www.amazon.qa.pilot.com/Tid-02341723424i842424'
       ]
    }

我不知道如何获得这些细节。有人可以分享我对此的一些意见吗?

标签: javascriptnode.jsjsonnode-modules

解决方案


您尚未分享如何获取此数据,但由于您为 node.js 添加了标签,我假设您在服务器端执行此操作。

在确保收到的数据为 JSON 格式(使用 JSON.parse)并且有效后,要获取所需的特定字段,您可以执行以下操作:

let links = [];
let callSummary = json['5cacd1333105'].callSummary
for (let index = 0; index < callSummary.length; index++) {
   let call = callSummary[index];
   if (call && call.link) {
      links.push(call.link);
   }
}

在此之后,您将拥有数组链接中的所有链接,并且您可以对它们做任何您想做的事情。


推荐阅读