-2

HTML 応答を投稿しました。次の応答の解析を手伝ってくれる人はいますか?

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

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

4 に答える 4

2

これは HTML 応答ではありません。JSON レスポンスです。

多くの JSON パーサー ライブラリのいずれかを使用して解析できます。http://www.json.orgに包括的なリストがあります。


アップデート

質問の新しいバージョンでは、XML 要素に JSON が埋め込まれた XML ドキュメントが表示されます。

XML パーサーを使用してstring要素のテキスト コンテンツを抽出し、JSON パーサーを使用してそのテキストを解析する必要があります。

いったいなぜ、XML と JSON をそのように混在させることが良い考えだと考える人がいるでしょうか??

于 2012-10-11T05:39:53.617 に答える
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 オブジェクトに変換できます。

于 2012-10-11T05:40:53.260 に答える
0

それは単なるjsonデータです。オブジェクトに読み込むことができるはずです:

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

応答としてxml内のjsonオブジェクトを取得している理由については、それは別の問題です..一般に、応答はjsonまたはxmlのいずれかである必要があります

于 2012-10-11T05:40:57.743 に答える
0

これは、単なる JSON 応答ではなく、ノードの 1 つに JSON を使用した XML 応答のように見えます。おそらく、そのノードから JSON 文字列を抽出し、次を使用して解析します。JSON.parse(extracted_json)

于 2012-10-11T05:42:53.157 に答える