我已经发布了我的HTML回复。任何人都可以帮我解析以下回复吗?
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://localhost:53179/hdfcmobile">
{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}
</string>
答案 0 :(得分:2)
这不是HTML响应。这是一个JSON响应。
您可以使用众多JSON解析器库之一来解析它。 http://www.json.org有一个全面的列表。
<强>更新强>
对于新版本的问题,您看起来似乎是一个XML文档,其中包含嵌入在XML元素中的JSON。
您需要使用XML解析器来提取string
元素的文本内容,然后使用JSON解析器来解析该文本。
为什么人们认为将XML和JSON混合起来是个好主意?
答案 1 :(得分:0)
您的回复是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对象。
答案 2 :(得分:0)
这只是json
数据。您应该能够将其读入对象:
var JSONtext = '{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}'
var myObject = JSON.parse( JSONtext );
至于为什么你在xml中获取一个json对象作为响应,这是另一回事..通常你的响应应该是json或xml
答案 3 :(得分:0)
这看起来像是在其中一个节点中使用JSON的XML响应 - 而不仅仅是JSON响应。您可能会从该节点中提取JSON字符串,然后使用JSON.parse(extracted_json)