0

当我使用 JSON.parse(myJSONString) 时,结果不是有效的 JSON 文件。我在nodejs环境中。有什么想法可以在我的代码中修复吗?我使用 XML2JS 将 XML Api 调用转换为 JS。

我已经打印出结果并且已经深入研究了 JSON.parse 但没有找到更多信息......

exports.getStations = functions.https.onCall(async (data) => {
    let stations

    await axios.get(encodeURI(`XMLAPi`))
        .then(async (response) => {
            parseString(response.data, (err, result) => {
                stations = JSON.stringify(result)
                console.log(stations) //First console.log
            }) 
        })
        .catch((error) => {
            console.log(error)
        })
        
    console.log(JSON.parse(stations)) //Second console.log
    return JSON.parse(stations)
})

第一个 console.log 的结果(有效的 JSON 但字符串):

{"itdRequest":{"$":{"xsi:noNamespaceSchemaLocation":"itd.xsd","language":"DE","sessionID":"EfaOpenServiceT_2882840828","client":"axios/0.19.0","serverID":"EfaOpenServiceT_","clientIP":"127.0.0.1","version":"10.3.5.46","virtDir":"static02","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance"},"itdStopFinderRequest":{"$":{"requestID":"1"},"itdOdv":{"$":{"type":"any","usage":"sf","anyObjFilter":"42"},"itdOdvPlace":{"$":{"state":"empty"},"odvPlaceElem":""},"itdOdvName":{"$":{"state":"list"},"itdMessage":{"$":{"type":"error","module":"BROKER","code":"-8011"}},"odvNameElem":[{"_":"Mettmann, Stadtwald S","$":{"value":"0:1","selected":"1","listIndex":"0","streetName":"","omc":"5158024","placeID":"5","x":"6987248.99348","y":"51250980.94198","mapName":"WGS84","id":"20019083","anyType":"stop","anyTypeSort":"2","nameKey":"","locality":"Mettmann","postCode":"","objectName":"Stadtwald S","buildingName":"","buildingNumber":"","matchQuality":"235","stateless":"20019083"}},{"_":"Mettmann, ME-Zentrum S","$":{"value":"1:2","selected":"0","listIndex":"1","streetName":"","omc":"5158024","placeID":"5","x":"6979002.45917","y":"51249372.83702","mapName":"WGS84","id":"20019020","anyType":"stop","anyTypeSort":"2","nameKey":"","locality":"Mettmann","postCode":"","objectName":"ME-Zentrum S","buildingName":"","buildingNumber":"","matchQuality":"234","stateless":"20019020"}},{"_":"Mettmann, Neanderthal S","$":{"value":"2:3","selected":"0","listIndex":"2","streetName":"","omc":"5158024","placeID":"5","x":"6953346.57466","y":"51227837.93128","mapName":"WGS84","id":"20019191","anyType":"stop","anyTypeSort":"2","nameKey":"","locality":"Mettmann","postCode":"","objectName":"Neanderthal S","buildingName":"","buildingNumber":"","matchQuality":"234","stateless":"20019191"}}],"odvNameInput":"mettmann"},"genAttrList":{"genAttrElem":[{"name":"anyObjFilter","value":"STOP"},{"name":"anyObjFilter","value":"ADDRESS"},{"name":"anyObjFilter","value":"POI"}]}},"itdDateTime":{"$":{"ttpFrom":"20190601","ttpTo":"20191231"},"itdDate":{"$":{"day":"10","month":"8","year":"2019","weekday":"7"}},"itdTime":{"$":{"hour":"16","minute":"4"}}}}}}

第二个 console.log 的结果(解析后 JSON 无效):

Object {
  "data": Object {
    "itdRequest": Object {
      "$": Object {
        "client": "axios/0.19.0",
        "clientIP": "127.0.0.1",
        "language": "DE",
        "serverID": "EfaOpenServiceT_",
        "sessionID": "EfaOpenServiceT_2882840828",
        "version": "10.3.5.46",
        "virtDir": "static02",
        "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
        "xsi:noNamespaceSchemaLocation": "itd.xsd",
      },
      "itdStopFinderRequest": Object {
        "$": Object {
          "requestID": "1",
        },
        "itdDateTime": Object {
          "$": Object {
            "ttpFrom": "20190601",
            "ttpTo": "20191231",
          },
          "itdDate": Object {
            "$": Object {
              "day": "10",
              "month": "8",
              "weekday": "7",
              "year": "2019",
            },
          },
          "itdTime": Object {
            "$": Object {
              "hour": "16",
              "minute": "4",
            },
          },
        },
        "itdOdv": Object {
          "$": Object {
            "anyObjFilter": "42",
            "type": "any",
            "usage": "sf",
          },
          "genAttrList": Object {
            "genAttrElem": Array [
              Object {
                "name": "anyObjFilter",
                "value": "STOP",
              },
              Object {
                "name": "anyObjFilter",
                "value": "ADDRESS",
              },
              Object {
                "name": "anyObjFilter",
                "value": "POI",
              },
            ],
          },
          "itdOdvName": Object {
            "$": Object {
              "state": "list",
            },
            "itdMessage": Object {
              "$": Object {
                "code": "-8011",
                "module": "BROKER",
                "type": "error",
              },
            },
            "odvNameElem": Array [
              Object {
                "$": Object {
                  "anyType": "stop",
                  "anyTypeSort": "2",
                  "buildingName": "",
                  "buildingNumber": "",
                  "id": "20019083",
                  "listIndex": "0",
                  "locality": "Mettmann",
                  "mapName": "WGS84",
                  "matchQuality": "235",
                  "nameKey": "",
                  "objectName": "Stadtwald S",
                  "omc": "5158024",
                  "placeID": "5",
                  "postCode": "",
                  "selected": "1",
                  "stateless": "20019083",
                  "streetName": "",
                  "value": "0:1",
                  "x": "6987248.99348",
                  "y": "51250980.94198",
                },
                "_": "Mettmann, Stadtwald S",
              },
              Object {
                "$": Object {
                  "anyType": "stop",
                  "anyTypeSort": "2",
                  "buildingName": "",
                  "buildingNumber": "",
                  "id": "20019020",
                  "listIndex": "1",
                  "locality": "Mettmann",
                  "mapName": "WGS84",
                  "matchQuality": "234",
                  "nameKey": "",
                  "objectName": "ME-Zentrum S",
                  "omc": "5158024",
                  "placeID": "5",
                  "postCode": "",
                  "selected": "0",
                  "stateless": "20019020",
                  "streetName": "",
                  "value": "1:2",
                  "x": "6979002.45917",
                  "y": "51249372.83702",
                },
                "_": "Mettmann, ME-Zentrum S",
              },
              Object {
                "$": Object {
                  "anyType": "stop",
                  "anyTypeSort": "2",
                  "buildingName": "",
                  "buildingNumber": "",
                  "id": "20019191",
                  "listIndex": "2",
                  "locality": "Mettmann",
                  "mapName": "WGS84",
                  "matchQuality": "234",
                  "nameKey": "",
                  "objectName": "Neanderthal S",
                  "omc": "5158024",
                  "placeID": "5",
                  "postCode": "",
                  "selected": "0",
                  "stateless": "20019191",
                  "streetName": "",
                  "value": "2:3",
                  "x": "6953346.57466",
                  "y": "51227837.93128",
                },
                "_": "Mettmann, Neanderthal S",
              },
            ],
            "odvNameInput": "mettmann",
          },
          "itdOdvPlace": Object {
            "$": Object {
              "state": "empty",
            },
            "odvPlaceElem": "",
          },
        },
      },
    },
  },
}
4

1 回答 1

0

您已经将字符串转换为parsestring函数。但它也在转换为JSON.stringify().

您可以尝试检查此值

let stations = await axios.get(encodeURI(`XMLAPi`));
console.log(JSON.stringify(stations.data)) // What is value??
于 2019-08-10T15:21:23.503 回答