シンプルなjsonを返すアクションがあります。デモの目的のためにサンプルコードを貼り付けます。シリアル化する単純なクラス:返されたjsonの二重引用符
public class Employee
{
public string FullName { get; set; }
}
JSONを返すアクション:私は混乱していますのはここ
public JsonResult Test()
{
var employee = new Employee { FullName = "Homer Simpson" };
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(employee);
return Json(json, JsonRequestBehavior.AllowGet);
}
です。私は、ブラウザからこのアクションを呼び出し、フィドラーとレスポンスを見てみると、これが結果です:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Mon, 15 Aug 2011 20:52:34 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 3.0
Cache-Control: private
Content-Type: application/json; charset=utf-8
Content-Length: 34
Connection: Close
"{\"FullName\":\"Homer Simpson\"}"
フィドラーで「JSON」タブには、「選択された応答が有効なJSONテキストが含まれていません」読みます。 有効な応答は次のようにする必要があります:ここで起こっている
"{"FullName":"Homer Simpson"}"
何?あなたはJSONに自分自身をシリアル化する必要はありません おかげ
' "{\" フルネーム\ ":\" ホーマーシンプソン\は "}"'エスケープバージョンでありますストリングされたJSONオブジェクトのそれが解析されると、エンジンは '{" FullName ":" Home Simpson "}'に変換します。中括弧の外側に引用符で囲まれているため、内部引用符をエスケープするか、無効な文字列を使用する必要があります。 –
返された文字列をJSONオブジェクトに解析してJSONタブにJSONを表示することはできませんが、それを理解することはできますか? –