私はdb内にjson文字列 を格納するフィールドを持っていますが、jsonの生データとして返されるjsonの結果で返すと、引用符で文字列を返しません。raw jsonフィールドをシリアル化する方法は?
UPDATE 1(詳細): あなたがイメージフィールドを見ている場合には、生のJSON文字列値
が含まれているが、後のタイプであるので、それはそれはOK引用符で反っ取得するJsonResultでそれをシリアル化String、 シリアライザに画像フィールドを生のjsonデータとして扱うように指示するにはどうすればよいですか?
var db = new ModelsContainer();
var res = db.Images.OrderByDescending(i=>i.DateCreated).Skip(skip).Take(take).Select(i => new {
id = i.Id,
dateCreated = i.DateCreated,
images = i.Images ,
user = new {
id = i.User.Id,
facebookId = i.User.FacebookId,
displayName = i.User.DisplayName
},
tags = i.Tags.Select(t => t.Value)
}).ToList();
return Json(res, JsonRequestBehavior.AllowGet);
[
{
"id":"5c528e88-f3a7-4b30-9746-980867325fd1",
"dateCreated":"\/Date(1364381593000)\/",
"images":"[{\"source\":\"http://localhost:9242/images/f4956702/6d34/42db/b28a/397d0eaf3097.jpg\",\"width\":237,\"height\":237},{\"source\":\"http://localhost:9242/images/87d47041/1522/4d10/9325/105851aae259.jpg\",\"width\":633,\"height\":633},{\"source\":\"http://localhost:9242/images/2a639272/9067/42fb/83ee/e88f0a0878f8.jpg\",\"width\":547,\"height\":547},{\"source\":\"http://localhost:9242/images/37caa7b2/e183/4efc/96eb/487e556501b2.jpg\",\"width\":1024,\"height\":1024}]",
"user":{"id":"ea39616d-6ff9-424b-b99b-7bee53e674bb","facebookId":"608215901","displayName":"Yonathan Garti"},
"tags":["test","test","test"]
},
...
]
あなたのソリューションは素晴らしいです!私のクラスはEntity Frameworkによって生成されるため、残念ながら私は実装できません。シリアライザに、属性を使用しないタイプコンバータを必要とする1つのフィールドについて伝える方法はありますか? – ygaradon
他の解決策は、JsonConverterが処理するカスタムタイプがある場合ですが、あなたのケースでは、それが動作しないようにプレーンストリングだと思っています。私の提案は、カスタムViewモデルを作成することです。上記のコードでは、初期化する匿名オブジェクト(res)ではなく、カスタムビューモデルを使用するだけです。 –
天才!どのように私は匿名型をいくつかのモデルに置き換える必要があることを見ていなかったし、私は属性を適用することができます!ありがとう。 – ygaradon