我已经发布了我的 html 回复。有人可以帮我解析以下回复吗?
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://localhost:53179/hdfcmobile">
{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}
</string>
我已经发布了我的 html 回复。有人可以帮我解析以下回复吗?
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://localhost:53179/hdfcmobile">
{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}
</string>
这不是 HTML 响应。这是一个 JSON 响应。
您可以使用众多 JSON 解析器库之一对其进行解析。在http://www.json.org上有一个综合列表。
更新
对于您的问题的新版本,您似乎拥有的是一个 XML 文档,该文档在 XML 元素中嵌入了 JSON。
您需要使用 XML 解析器来提取string
元素的文本内容,然后使用 JSON 解析器来解析该文本。
为什么会有人认为像这样混合 XML 和 JSON 是个好主意?
您的响应是 JSON 字符串。为了使用它,您应该将它转换为 JavaScript 对象。eval
函数可用于此目的:
var response = '{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}';
eval('var a='+response);
alert("Status = " + a.Status);
alert("Data.Loginstatus = " + a.Data[0].Loginstatus);
alert("Data.agentid = " + a.Data[0].agentid);
更新
自从我留下答案以来,问题已经更新,所以这是我的答案的补充:)。为了从获得的 XML 响应中提取 JSON 字符串,您可以使用"<string[^>]*>(.*?)<\/string>"
如下正则表达式:
var responseText = '<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://localhost:53179/hdfcmobile">
{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}
</string>';
var oRegExp = new RegExp("<string[^>]*>(.*?)<\/string>", "ig");
var matches = oRegExp.exec(responseText);
var response = matches[1];
之后,您可以使用上面编写的代码转换response
为 JavaScript 对象。
这只是json
数据。您应该能够将其读入对象:
var JSONtext = '{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}'
var myObject = JSON.parse( JSONtext );
至于为什么要在 xml 中获取 json 对象作为响应,那是另一回事。通常您的响应应该是 json 或 xml
这看起来像是在其中一个节点内使用 JSON 的 XML 响应——而不仅仅是 JSON 响应。您可能会从该节点中提取 JSON 字符串,然后使用JSON.parse(extracted_json)