【问题标题】:Accessing a JSON parsed SOAP envelope with Javascript使用 Javascript 访问 JSON 解析的 SOAP 信封
【发布时间】:2015-09-15 15:25:09
【问题描述】:

这是我的第一篇文章,我是这个美妙的开发世界的新手,所以如果这是一个愚蠢的问题,我提前道歉。

我正在使用 Xml2js 发送一个肥皂请求。然后我将响应解析为 json。我的问题是深入研究肥皂信封。这是响应的样子:

{ 'soap:Envelope': { '$': { 'xmlns:soap': 'http://schemas.xmlsoap.org/soap/envelope/' }, 'soap:Header': [ [Object] ], 'soap:Body': [ [Object] ] } }

这是一个扩展视图

{ 'soap:Envelope': 
 { '$': { 'xmlns:soap': 'http://schemas.xmlsoap.org/soap/envelope/' },
 'soap:Header': 
  [ { DWHeader: 
       [ { '$': { xmlns: 'Some Xmls' },
           SenderInfo: 
            [ { ApplicationID: [ 'Id' ],
                Credentials: [ { AuthToken: [ 'Authtoken' ] } ] } ],
           GlobalTimeoutMS: [ '123' ],
           TrackingID: [ '123' ],
           TraceResults: 
            [ { TraceResult: 
                 [ { IPAddress: [ '0.0.0.0' ],
                     Instance: [ '123' ],
                     Actor: [ '123' ],
                     Timestamp: [ '2015-08-08T15:45:40.844Z' ],
                     DetailedMessage: [ '123' ] } ] } ],
           TraceSettings: [ { '$': { Enabled: 'false' } } ] } ] } ],
 'soap:Body': 
  [ { GetCurrentLocationOfAllMobilesResponse: 
       [ { '$': { xmlns: 'Some xmls' },
           Tracks: 
            [ { Track: 
                 [ { Id: [ 'Id' ],
                     TimeStamp: [ '2015-09-14T21:09:47Z' ],
                     HardwareId: [ 'Some id' ],
                     MobileName: [ 'Truck' ],
                     Lat: [ 'Some Lat' ],
                     Lon: [ 'Some Lon' ],
                     Heading: [ '0' ],
                     Speed: [ '0' ],
                     GPSLock: [ 'true' ],
                     Old: [ 'false' ],
                     Ping: [ 'false' ],
                     Motion: [ 'false' ],
                     Speeding: [ 'false' ],
                     Ignition: [ 'false' ],
                     IgnitionStatus: [ 'Engine Off' ],
                     Street: [ 'Address' ],
                     City: [ 'Some City' ],
                     StateProvince: [ 'Some State' ],
                     PostalCode: [ 'Some Zip' ],
                     County: [ 'Some County' ],
                     Rssi: [ '32' ],
                     Sats: [ '11' ],
                     TimeZone: [ 'Some Timezone' ],
                     Sensor1: [ 'true' ],
                     Sensor2: [ 'false' ] }
                    ] } ] } ] } ] } }

我需要 Track 数组,但是当我尝试向下钻取时,“soap:Envelope”和“soap:Body”出现问题。

这是我的第一个问题,所以如果我没有发布足够的信息,请告诉我,我会提供更多信息。

谢谢!

【问题讨论】:

    标签: javascript json node.js soap


    【解决方案1】:

    您是否尝试过使用括号表示法?

    var tracksArray = response['soap:Envelope']['soap:Body'][0].GetCurrentLocationOfAllMobilesResponse[0].Tracks
    

    有关括号符号的更多信息,请参阅此答案:https://stackoverflow.com/a/4968448/4178531

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      相关资源
      最近更新 更多