<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://s.com/webservices/">{
"Status": "0",
"UserID": "2",
"SessionTimeOut": "10",
"TestList": [
{
"PlantCode": "01",
"PlantName": "Master",
"PlantAddr": "Master",
"PlantID": "1"
},
{
"PlantCode": "02",
"PlantName": "Plant1",
"PlantAddr": "Plant1",
"PlantID": "2"
}
]
}</string>
我在xml响应中有一个json。我可以解析json但是如何从响应中检索它。
编辑:当我做以下事情时工作:
var xml = response;
var xmlString = (new XMLSerializer()).serializeToString(xml);
var xmlDoc = $.parseXML(xmlString),
$jqXml = $(xmlDoc),
$json = $jqXml.find('string');
var jsonRaw = $.parseJSON($json.text());
答案 0 :(得分:1)
使用http://api.jquery.com/jquery.parsexml/
var xml = '<?xml version="1.0" encoding="utf-8"?><string xmlns="http://s.com/webservices/">{"Status": "0"}</string>';
var xmlDoc = $.parseXML(xml);
$jqXml = $(xmlDoc);
$json = $jqXml.find('string');
var jsonRaw = $.parseJSON($json.text());
这是一个带有完整XML字符串的JSFiddle示例:
答案 1 :(得分:0)
如果您可以控制响应,最好将响应发送为纯Json而不是将其封装在xml字符串中。
否则你也可以尝试发送xml字符串并使用内置函数解析xml。
高度不推荐:如果由于某些奇怪的限制你无法发送纯json或纯xml,解决方案是使用正则表达式将json与xml分开。以下javascript正则表达式可以帮助将json与xml分开(可以改进)
json = original.replace(/^.*?(\{.*?)\<.*$/s,'$1')