从javascript中的JSON对象获取值
我有一个JSON对象结果,它是从xml数据响应转换而来的,如下所述从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
{
"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对象,只需使用方括号表示法即可。