0

こんにちは、私は応答として次の文字列を持っています:

var retstr = {"d":"{\"param1\": \"normal text (\"quoted text\") normal text\",\"param2\": \"4\"}"};
var jsonObj = $.parseJSON(retstr.d);

この「d」パラメーターは、セキュリティ上の理由から MS によって作成され、すべての実際の json 文字列がこのパラメーターの値として渡されます。詳細はこちら

そのため、パラメータはすでに \" 記号でエスケープされており、パラメータ値で引用符に遭遇すると解析に失敗します。ただし、二重引用符を置き換えることはできません。

私はこれで立ち往生しており、状況を解決できません。

4

2 に答える 2

0

引用したコードを考えると、これを行うでしょう:

var jsonObj = $.parseJSON(retstr.d);
// Then use `jsonObj.param1` and such

...あなたが呼んだretstrのは文字列ではないため、プロパティを持つオブジェクトでdあり、文字列 (JSON を含む) です。

しかし、あなたが引用したものが本当にあなたが持っているものかどうかはわかりません.

于 2013-10-16T07:20:29.957 に答える
-1

json の結果をループするだけで、何も解析する必要はありません。

var retstr = {"d":"{\"param1\": \"normal text (\"quoted text\") normal text\",\"param2\": \"4\"}"};
var jsonObj = JSON.parse(retstr);

要素を取得するjsonObj.param1 か、チェックしますjsonObj.d.param1

編集 1

以下のようなjqueryがある場合

$.ajax({
     contentType: "application/json",
     url: 'http://localhost:16329/Hello',
     dataType: "json"
});

その後、それを解析する必要はありません。

于 2013-10-16T07:19:37.837 に答える