次の JSON オブジェクトがあります。
[{"newValue":"{\"id\":\"1\",\"desc\":\"description\"}",
"oldValue":"{\"id\":\"2\",\"desc\":\"description2\"}"}]
newValue
は、逆シリアル化するオブジェクトの新しい値を保持し、逆シリアル化oldValue
するオブジェクトの古い値を含みますが、それぞれを個別に逆シリアル化する方法がわかりませんか、一緒に行うことができますか?
次の JSON オブジェクトがあります。
[{"newValue":"{\"id\":\"1\",\"desc\":\"description\"}",
"oldValue":"{\"id\":\"2\",\"desc\":\"description2\"}"}]
newValue
は、逆シリアル化するオブジェクトの新しい値を保持し、逆シリアル化oldValue
するオブジェクトの古い値を含みますが、それぞれを個別に逆シリアル化する方法がわかりませんか、一緒に行うことができますか?
newValueとoldValueの値はobject ではなくstringであるため、json は少し奇妙です。ダブル連載されているようです。以下のコードは機能します (最初に json 文字列全体を逆シリアル化し、次にold/new/valuesを逆シリアル化します)
var jArr = JArray.Parse(json);
var anon = new { id = 0, desc = "" };
var items = jArr.Select(item => new
{
NewValue = JsonConvert.DeserializeAnonymousType(item["newValue"].ToString(),anon),
OldValue = JsonConvert.DeserializeAnonymousType(item["oldValue"].ToString(),anon)
})
.ToList();