获取AJAX XML URL包含JSON内容,如何通过JavaScript读取它


   <string xmlns="http://tempuri.org/">
  "Result": "Sucess",
  "MotorList": [
    {
      "id": "1",
      "titleen": "Camry",
      "titlear": "Multi_service"}]
</string>

此XML包含JSON,因此如何使用JavaScript

从XML解析JSON数据

从我的理解中,您从ajax产生的不是一个完整的json对象。

json对象以

开始

{

并以

结尾

}

eg:

{
     "Result": "Sucess",
     "MotorList": [
        {
          "id": "1",
          "titleen": "Camry",
          "titlear": "Multi_service"
        }
      ]
}

因此,您需要将响应包装在{}中,然后将json.parse()与parses进行对象

eg:

let response = '"Result": "Sucess", "MotorList": [ { "id": "1", "titleen": "Camry", "titlear": "Multi_service"}]'
let json = JSON.parse("{"+response +"}")

现在您可以访问JSON对象,例如

json.result

在提供的响应中仅"摩托单"值包含有效的JSON。如果您可以修改服务,然后将响应更改为JSON,那将是理想的解决方案。但是,如果您无法修改服务,则必须使用XML读取器对其进行解析,并执行一系列字符串操作以获取所需的值。例如,以下代码将"摩托单"值提取到JSON:

var parser, xmlDoc;
//Get the value from Ajax
var text = '<string xmlns="http://tempuri.org/">' +
  '"Result": "Sucess",' +
  '"MotorList": [' +
    '{' +
      '"id": "1",' +
      '"titleen": "Camry",' +
      '"titlear": "Multi_service"}]' +
'</string>';
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
//document.getElementById("demo").innerHTML =
var resultString = xmlDoc.getElementsByTagName("string")[0].childNodes[0].nodeValue;
var resultTokens = resultString.substring(resultString.indexOf(',') + 1, resultString.length)
var resultObj = JSON.parse(resultTokens.substring(resultTokens.indexOf(':') + 1, resultTokens.length))
var motorList = resultObj[0]

最新更新