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

本文关键字:JSON 字符串 反序列化 何使用 net JavaScriptSerializer | 更新日期: 2023-09-27 18:16:59

我有以下JSON对象:

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

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

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

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