javascript - 从 javascript 中的 JSON 对象中获取值
问题描述
我有 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,因为它不支持命名空间。
推荐阅读
- javascript - 从它更改路径时反应js不会因为它没有完成加载页面
- paypal - 向客户发送付款收据
- php - 我无法连接 PHP CURL。我收到一个禁止的错误
- html - 引导表内的空按钮。如何设置为 100% 高度?
- angular - NZ Zorro,Ant design nz-table 动态列不对齐
- javascript - 如何在文本框中显示 JavaScript 函数返回?
- java - Android Studio 中的时间选择器对话框
- excel - 使用数据库的用户表单创建序列号系列
- javascript - How to make checkbox change specific object property to false
- c - 在 C 中发送带有附件的电子邮件