2012-10-11 55 views
-2

我發佈了我的HTML響應。任何人都可以幫我解析下面的響應嗎?如何解析此html響應?

<?xml version="1.0" encoding="utf-8"?> 

<string xmlns="http://localhost:53179/hdfcmobile"> 
    {"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]} 
</string> 
+0

解析它在什麼情況下您是? Web瀏覽器,node.js?你目前使用jQuery嗎? –

+0

這是JSON響應 – Buzz

回答

2

這不是HTML響應。這是一個JSON響應。

您可以使用許多JSON解析器庫中的一個解析它。在http://www.json.org有一個全面的列表。


UPDATE

你的問題的新版本,你看起來是有是有JSON嵌入到XML元素的XML文檔。

您需要使用XML解析器來提取string元素的文本內容,然後使用JSON解析器來解析該文本。

爲什麼人們會認爲將XML和JSON混合在一起是一個好主意?

+2

它實際上是XML,其中字符串元素恰好是JSON有效負載 – Avi

+0

@Avram - 您是否看到問題的原始版本? –

+0

我想不是,互斥體很酷 – Avi

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); 

UPDATE

問題已經更新,所以這裏是除了我的答案:)。爲了提取所獲得的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對象。

+0

使用'JSON.parse()'而不是'eval'。 – sachleen

+0

@sachleen,你說得對,'JSON.parse()'更安全,但是這種方法不適用於舊版瀏覽器。根據developer.mozilla.org的說法,'JSON.parse()'包含在JavaScript 1.7中。 – bhovhannes

+0

感謝您的幫助..我試着用它..但我沒有得到JSON值 – user751828

0

這只是json數據。你應該能夠讀取到的對象:

var JSONtext = '{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}' 
var myObject = JSON.parse(JSONtext); 

至於爲什麼你得到一個JSON對象中的XML作爲迴應,那是另一回事了。一般你的回答應該是JSON或XML

0

看起來像XML在其中一個節點中使用JSON進行響應 - 而不僅僅是一個JSON響應。您可能會從該節點提取JSON字符串,然後使用JSON.parse(extracted_json)

+0

如何從該節點提取該JSON字符串??我沒有得到它..謝謝.. – user751828

+0

@ user751828看到我的答案。我用正則表達式做了它。 – bhovhannes

+0

不,我問如何從XML響應提取JSON .. – user751828