【发布时间】:2015-07-14 14:44:01
【问题描述】:
我有以下JSON
{
"employee" : {
"property1" : "value1",
"property2" : "value2",
//...
}
}
像这样的班级
public class employee
{
public string property1{get;set;}
public string property2{get;set;}
//...
}
如果我需要在我的 JSON 中添加 property3,那么我也需要在我的类中进行更改。
即使我更改了 JSON(添加另一个属性,如 property3),我如何反序列化为一个类。
像newtonsoft.json 这样的序列化/反序列化技术与类紧密耦合。
在 c# 的可移植类中deserialize 这类JSON 有更好的方法/工具吗?
【问题讨论】:
-
一种方法是自定义 JSON-Deserialiter,f.E.看这里:stackoverflow.com/questions/8030538/… 使用一点反射魔法,您可以使用有效的 setter 检查所有属性,并按命名约定将其映射到 JSON-Data。
-
您是否只想反序列化为某种匿名类型,以便您可以读取数据而无需关心它是什么类型的对象?如果是这样,newtonsoft 库会让你这样做。
-
这个问题并不是关于反序列化本身,它更多的是关于基于动态输入数据向 C# 类动态添加属性。
标签: c# json serialization