首页 > 解决方案 > 如何解析对象不是逗号分隔的 JSON 字符串?

问题描述

我一直在尝试解析我从 API 获得的这个 JSON。它似乎不起作用。当我尝试将整个响应传递给对象或数组时,它将整个响应插入到单个对象或数组中。我只是发布 API 响应,而不是我尝试过的代码:

{"canonical_url": "http://magento2-demo.nexcess.net/"}{"shop_properties": {"is_hypernode": false, "hypernode_without_magento": false, "loadtime_milliseconds": 638}}{"admin_url": null}{"security.supee5344": {"magento2": false, "resultString": "backend url required", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}{"security.supee5994": {"magento2": false, "resultString": "installed", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.ransomware": {"magento2": true, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.cart2quoterce": {"magento2": false, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.ajaxcartrce": {"magento2": false, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.opendev": {"magento2": true, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.openversioncontrol": {"magento2": true, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.sslcheck": {"magento2": true, "resultString": "misconfigured", "riskRating": "medium", "result": "fail", "magento1": true, "cloudflareCacheHit": null}}{"security.guruincinfection": {"magento2": true, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.creditcardhijack": {"magento2": true, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.visbot": {"magento2": false, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.cryptojacking": {"magento2": true, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.outdatedserverversion": {"magento2": true, "resultString": "unknown", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}{"security.amastyopendownload": {"magento2": false, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.cacheleak": {"magento2": true, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.openmagmi": {"magento2": false, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.webforms": {"magento2": false, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.bruteforce": {"magento2": false, "resultString": "protected", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.magversion": {"magento2": true, "resultString": "CE 2.1.0 - 2.1.2", "riskRating": "high", "result": "fail", "magento1": true, "cloudflareCacheHit": null}}{"security.supee6788": {"magento2": false, "resultString": "installed", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.supee8788": {"magento2": false, "resultString": "unknown", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}{"security.supee9652": {"magento2": false, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.supee10570": {"magento2": false, "resultString": "patched", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.supee10752": {"magento2": false, "resultString": "patched", "riskRating": "low", "result": "ok", "magento1": true, "cloudflareCacheHit": null}}{"security.supee6285": {"magento2": false, "resultString": "unknown", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}{"security.supee6482": {"magento2": false, "resultString": "unknown", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}{"security.exposedapi": {"magento2": true, "resultString": "safe", "riskRating": "low", "result": "ok", "magento1": false, "cloudflareCacheHit": null}}{"security.supee10266": {"magento2": false, "resultString": "backend url required", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}{"security.supee9767": {"magento2": false, "resultString": "unknown", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}{"security.supee10415": {"magento2": false, "resultString": "unknown", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}{"security.supee7405": {"magento2": false, "resultString": "unknown", "riskRating": "low", "result": "unkn", "magento1": true, "cloudflareCacheHit": null}}

标签: javascriptjson

解决方案


https://www.npmjs.com/package/really-relaxed-json 可以在这里为您提供帮助。不幸的是,由于某种原因,StackOverflow 片段在作为外部资源包含时无法运行(来自 CDN https://cdn.jsdelivr.net/npm/relaxed-json@1.0.1/relaxed-json.js),所以我创建了一个 Stackblitz演示在这里:

https://js-ei2iz2.stackblitz.io <--检查控制台

这是可编辑的示例:

https://stackblitz.com/edit/js-ei2iz2

let response = `{  
       "canonical_url":"http://magento2-demo.nexcess.net/"
    }{  
       "shop_properties":{  
          "is_hypernode":false,
          "hypernode_without_magento":false,
          "loadtime_milliseconds":535
       }
    }{  
       "admin_url":null
    }{  
       "security.supee5344":{  
          "magento2":false,
          "resultString":"backend url required",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee5994":{  
          "magento2":false,
          "resultString":"installed",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.cart2quoterce":{  
          "magento2":false,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.ransomware":{  
          "magento2":true,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.ajaxcartrce":{  
          "magento2":false,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.openversioncontrol":{  
          "magento2":true,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.opendev":{  
          "magento2":true,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.guruincinfection":{  
          "magento2":true,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.creditcardhijack":{  
          "magento2":true,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.visbot":{  
          "magento2":false,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.cryptojacking":{  
          "magento2":true,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.outdatedserverversion":{  
          "magento2":true,
          "resultString":"unknown",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.cacheleak":{  
          "magento2":true,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.amastyopendownload":{  
          "magento2":false,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.sslcheck":{  
          "magento2":true,
          "resultString":"misconfigured",
          "riskRating":"medium",
          "result":"fail",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.webforms":{  
          "magento2":false,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.openmagmi":{  
          "magento2":false,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.magversion":{  
          "magento2":true,
          "resultString":"CE 2.1.0 - 2.1.2",
          "riskRating":"high",
          "result":"fail",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee6788":{  
          "magento2":false,
          "resultString":"installed",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee8788":{  
          "magento2":false,
          "resultString":"unknown",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee9652":{  
          "magento2":false,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee10570":{  
          "magento2":false,
          "resultString":"patched",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee10752":{  
          "magento2":false,
          "resultString":"patched",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee6285":{  
          "magento2":false,
          "resultString":"unknown",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee6482":{  
          "magento2":false,
          "resultString":"unknown",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.exposedapi":{  
          "magento2":true,
          "resultString":"safe",
          "riskRating":"low",
          "result":"ok",
          "magento1":false,
          "cloudflareCacheHit":null
       }
    }{  
       "security.bruteforce":{  
          "magento2":false,
          "resultString":"protected",
          "riskRating":"low",
          "result":"ok",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee10266":{  
          "magento2":false,
          "resultString":"backend url required",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee9767":{  
          "magento2":false,
          "resultString":"unknown",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee10415":{  
          "magento2":false,
          "resultString":"unknown",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":null
       }
    }{  
       "security.supee7405":{  
          "magento2":false,
          "resultString":"unknown",
          "riskRating":"low",
          "result":"unkn",
          "magento1":true,
          "cloudflareCacheHit":nulla
       }
    }`

    response = "["+response+"]"

    console.log(RJSON.parse(response))

推荐阅读