如何使用.NET JavaScriptSerializer类反序列化以下JSON字符串?

时间:2013-06-05 17:46:59

标签: c# json javascriptserializer

我有以下JSON对象:

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

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

1 个答案:

答案 0 :(得分:1)

你的json有点奇怪,因为 newValue oldValue 的值是 string ,而不是对象。它们似乎是双序列化的。下面的代码工作(通过首先反序列化整个json字符串,然后旧/新/值

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();