c# - JSON反序列化的问题

标签 c# json deserialization

我的项目通过 UDP 获取大量 JSON 字符串,每个字符串描述一些对象列表。 我无法编写一个函数来获取某个列表,并对这个列表进行反序列化。 问题是,如果不知道组成列表的对象的类名,我就无法进行反序列化。 我尝试给出每个部门 ID 字段。但是在这里,我也无法对特定字段进行反序列化,因为部门名称未知。

有人有解决办法吗?

最佳答案

是的,JSON 问题。 我会走封装的路。 首先,我将创建包装器:

public class JSONObjectWrapper
{
    public string ObjectType;
    public string ObjectInJSON;
    [DoNotSerialize] // sorry do not remember the attribute to exclude it from serialization
    public object ObjectData;
}

在序列化期间,您将显式地将 ObjectData 序列化为 ObjectInJSON。然后发送序列化的JSONOBjectWrapper。

在传入端,您始终知道它是 JSONObjectWrapper。反序列化它 - 通过此您可以获得包含对象和对象类型的 JSON。找到此对象类型,使用某个工厂创建它,然后将其从 OBjectInJSON 反序列化为 ObjectData

仅当您可以在发送端进行绕行时,上述过程才有效。否则,你就完蛋了:-)

关于c# - JSON反序列化的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17744416/

相关文章:

c# - AntiForgeryToken 是否防止将额外的表单字段提交给服务器?

c# - 错误 CS0433 : The type 'JsonValue' exists in both 'System.Json, Version=2.0.5.0' and 'Xamarin.Auth' (CS0433)

php - 使用 d3.json() 从 php 获取 json 数据不起作用

c# - 使用 XmlSerializer 将 xml 元素反序列化为数组不起作用

c# - 在 C# 中优雅地检查 null 并退出

c# - 如何在 C# windows 窗体项目中显示 Stimulsoft Report?

mysql - 在 MySql 中存储可搜索的 JSon

java - 可序列化类不恢复状态

c# - 如何使用 DataContractJsonSerializer 反序列化字典?

c# - 检查私有(private)字段与捕获异常