1

我正在寻找 .NET 的 JSON 解析器和编码器,它可以将 JSON 解析为自己的数据结构,然后我可以导航,而不是直接将其反序列化为一个类。在 Java 中,我使用JettisonJSONObjectJSONArray,它们非常容易使用。

我不想(反)序列化的原因有很多:

  1. 序列化程序倾向于将元数据添加到 JSON 并要求元数据进行反序列化(例如 fastJSON 和 JSON.NET 添加类型信息)。
  2. 我不希望必须创建一堆类来处理所有不同类型的数据的麻烦。另外,我希望能够忽略我不感兴趣的字段,而不必向它们添加属性。

有什么可用的,还是我必须移植 Jettison 的一个子集?

4

1 回答 1

0

您指出的序列化的缺点并不存在,至少在 JSON.NET 的情况下:

  1. JSON.NET 默认不添加任何元数据。如果需要,您可以告诉它添加元数据(例如,当一个属性可以保存不同类型的值时),但它是可选的。
  2. 您用使用字符串和强制转换的麻烦代替了创建类的麻烦,我认为这更糟。此外,您可以忽略不感兴趣的字段,只是不要将它们添加到您的类型中。

但是,如果你真的想这样做,你可以。等效类型是JObjectand JArray,因此,如果要反序列化某个对象,请使用:

JObject obj = JsonConvert.DeserializeObject<JObject>(json);

作为另一种选择,您根本不必指定所需的类型,它会返回JObjector JArray

object objectOrArray = JsonConvert.DeserializeObject(json);
于 2012-03-12T13:13:39.380 回答