【发布时间】:2020-06-15 02:53:16
【问题描述】:
我有一种情况,我将 Json 值作为字符串列表。
List<string> values = new List<string>()
{
"{\"Id\":\"SC\",\"Value\":8563}",
"{\"Id\":\"SC\",\"Value\":8563}",
"{\"Id\":\"SC\",\"Value\":8563}"
};
如何反序列化为对象列表:
public class ClassA
{
public string Id {get; set;}
public int Value {get;set;}
}
var objectValues = JsonConvert.DeserializeObject<IEnumerable<ClassA>>(values);
当我传递值列表时无法反序列化,它需要一个字符串作为参数;我可以创建一个扩展方法还是有更简单的反序列化方法?
【问题讨论】:
-
为什么要将每个对象存储在字符串数组中?为什么不保留原来的 JSON 数组结构呢?如果您无法做到这一点,那么您需要遍历
values列表并反序列化每个单独的项目。 -
“反序列化” JSON 的行为也意味着获取
string并将其转换为具体对象。我不知道你为什么认为你可以反序列化已经是一个对象的东西 -
其实现在想来,扩展方法跟这里有什么关系?
-
@maccettura 我在后端表中有 Json 值行,我从表中读取它们作为 Object 的集合,我需要将 Json 的集合反序列化为 ClassA 对象的集合。跨度>
标签: c# .net json jsonconvert