从javascript中的JSON对象获取值

从javascript中的JSON对象获取值,javascript,json,Javascript,Json,我有一个JSON对象结果,它是从xml数据响应转换而来的,如下所述 { "env:Envelope": { "xmlns:env": [ "http://schemas.xmlsoap.org/soap/envelope/" ], "xmlns:wsa": [ "http://www.w3.org/200

我有一个JSON对象结果,它是从xml数据响应转换而来的,如下所述

{
    "env:Envelope": {
        "xmlns:env": [
            "http://schemas.xmlsoap.org/soap/envelope/"
        ],
        "xmlns:wsa": [
            "http://www.w3.org/2005/08/addressing"
        ],
        "env:Header": [
            {
                "wsa:MessageID": [
                    "urn:E8CC4000D1BF11EA8F1C35236A977E2C"
                ],
                "wsa:FaultTo": [
                    {
                        "wsa:Address": [
                            "http://www.w3.org/2005/08/addressing/anonymous"
                        ],
                        "wsa:ReferenceParameters": [
                            {
                                "instra:tracking.compositeInstanceCreatedTime": [
                                    {
                                        "_": "2020-07-29T12:21:16.054-05:00",
                                        "xmlns:instra": [
                                            "http://xmlns.o.com/sca/tracking/1.0"
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ],
        "env:Body": [
            {
                "processResponse": [
                    {
                        "xmlns": [
                            "http://xmlns.o.com/BPL_AutoRFC"
                        ],
                        "payload": [
                            {
                                "xmlns:dvm": [
                                    "http://www.o.com/XSL/Transform/java/tip.dvm.LookupValue"
                                ],
                                "xmlns": [
                                    ""
                                ],
                                "ns0:RfcProject": [
                                    {
                                        "xmlns:ns0": [
                                            "http://www.siebel.com/xml/RFC"
                                        ],
                                        "ns0:IntegrationStatus": [
                                            "RFC Query - Success"
                                        ],
                                        "ns0:Id": [
                                            "3-APXME9Y
                                        ],
                ]
            }
        ]
    }
}
我使用的代码如下:

(async () => {
  const { response } = await soapRequest({ url: url, headers: sampleHeaders, xml: xml, timeout: 10000 }); // Optional timeout parameter(milliseconds)
  const { headers, body, statusCode } = response;
  console.log(headers);
  xml2js.parseString(body,{ mergeAttrs: true }, (err, result) => {
    if(err) {
        throw err;
    }

    // `result` is a JavaScript object
    // convert it to a JSON string
    const json = JSON.stringify(result, null, 4);

    // log JSON string
    console.log(json);
    
});

})();

我需要从上面的JSON对象结果中获取以下值。是否还有其他方法可以获取值

下面的值我需要从JSON对象中获取。而且在很多情况下,我需要这样获取值

“ns0:Id”:3-APXME9Y

就我所知,您的JSON无效(缺少“和一些]})

对于其余部分,我不确定您到底想做什么,但您可以访问JSON对象的属性

let v=result["env:Envelope"]["env:Body"][0].processResponse[0].payload[0]["ns0:RfcProject"][0]["ns0:Id"][0]
这应该在v中指定字符串“3-APXME9Y”


但是请记住,这种方法在某种程度上是有缺陷的。ns0实际上是指名称空间“http://www.siebel.com/xml/RFC“而且可能会改变。如果您正在处理XML,只需处理XML,不要转换为JSON,因为它不知道名称空间。

在XML响应中,如何检索这样的数据,请您帮助我首先检索XML文档。我不熟悉soapRequest,但我建议你从你的身体开始。发布实际的XML而不是JSON。然后,对于XML遍历,最好的方法是使用XPath()作为某些数据结构的文本表示。这里不需要使用JSON(可能只是为了确保
console.log()
打印所有内容)
result
是一个JavaScript对象,只需使用方括号表示法即可。