-1

我有以下 JSON 对象:

[{"newValue":"{\"id\":\"1\",\"desc\":\"description\"}",
"oldValue":"{\"id\":\"2\",\"desc\":\"description2\"}"}]

newValueis 保存我要反序列化的对象的新值,并oldValue包含我要反序列化的对象的旧值,但我不确定如何单独反序列化每个对象,或者可以一起完成吗?

4

1 回答 1

1

您的 json 有点奇怪,因为newValueoldValue的值是string,而不是 object。似乎它们是双序列化的。下面的代码有效(首先反序列化整个 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();
于 2013-06-05T18:29:04.077 回答