C# 额外的随机JSON解析

C# 额外的随机JSON解析,c#,json,C#,Json,我试图解析从帮助台系统返回的一段很长的JSON,我无法修改它。到目前为止,我一直在使用C#中的JavaScriptSerializer().Deserialize(data)方法,但我遇到的问题是JSON中的差异,这将再次困扰我。具体而言,某些属性具有看似随机的子属性。以下是模糊数据的精简版本,说明了这一点: {"ticket_id":"12345","custom_fields":[{"customgroup_id":"12","custom_group":[{"customfield_id"

我试图解析从帮助台系统返回的一段很长的JSON,我无法修改它。到目前为止,我一直在使用C#中的
JavaScriptSerializer().Deserialize(data)
方法,但我遇到的问题是JSON中的差异,这将再次困扰我。具体而言,某些属性具有看似随机的子属性。以下是模糊数据的精简版本,说明了这一点:

{"ticket_id":"12345","custom_fields":[{"customgroup_id":"12","custom_group":[{"customfield_id":"33","custom_field_data":{"customfield_data_id":"12345"}},{"customfield_id":"34","custom_field_data":{"customfield_data_id":"12345"}},{"customfield_id":"35","custom_field_data":{"3":{"customfield_data_id":"12345"}}},{"customfield_id":"54","custom_field_data":{"customfield_data_id":"12345"}},{"customfield_id":"55","custom_field_data":{"6":{"customfield_data_id":"12345"}}}]}]}

不相关的属性已被删除。可以看到,有时
customfield\u data
紧跟包含
customfield\u data\u id
的数组,但有时紧跟其后的是一个完全随机的整数,然后是包含
customfield\u data\u id
的数组。我的问题是,我不知道如何解析它——到目前为止,我只是简单地将JSON与相应的类映射,但考虑到这些整数是否会进入
自定义字段\u数据
及其列表之间似乎是完全随机的,我不知道如何解析它

如果有一种方法可以保留我目前制作类图的工作,那将是我的首选。如果唯一的解决方案是完全切换到其他库/方法,那么就这样吧。谢谢大家的帮助

如果无法创建与JSON对象100%匹配的C#类。您最好的选择是编写自己的自定义JSON转换器(System.Text.JSON.Serialization.JsonConverter),如.NETCore中支持的那样。看看这个


基本上,它允许您逐个遍历每个JSON节点,并决定解析值的位置(将其放在类的属性、字典或数组中)。

如果您将为
自定义字段数据
获取一个类,其中每个“number”属性都有其自己的类(链接生成器将为您提供名为
\uuuu invalid\u type\uuuu 3
)的类。您可以在
自定义字段\u data
类上编写一个方法,通过直接使用该属性或通过其中一个“数字”访问内部列表属性,具体取决于哪个属性为null,但这有点太过粗糙。另一种方法是为此类编写自己的自定义json序列化程序。请不要将代码粘贴为空images@Chronicle是的,这就是我正在使用的,并且注意到了那些奇怪的类。我可能会选择自定义路线,谢谢。还有Pavel,我只发布了这张图片,因为它是JS根据那条长线可能无法破译。只是一种想象。还是不好吗?