从XML解析JSON数据
<string xmlns="http://tempuri.org/">
"Result": "Sucess",
"MotorList": [
{
"id": "1",
"titleen": "Camry",
"titlear": "Multi_service"}]
</string>
此XML包含JSON,因此如何使用JavaScript
从我的理解中,您从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]