反序列化可能具有不同类型的JSON字段

时间:2019-06-05 18:38:59

标签: java json gson

我正在使用gson将json文件反序列化为对象。 json的各个部分都有一个“属性”数组,每个属性本身都是一个数组,其中包含最多6个可选字段,这些字段始终是一种类型,第7个字段“ default”可能包含布尔值,字符串或一个int。我的对象类看起来像这样

public class Object {
  private string name;
  private Map<String, Property> properties;
  //Code
  }
    class Property {
      private String type;
      ...
      @SerializedName("default")
      private default_field;
      //...
    }
  }

我看到我的选择是创建三种类型的Property,每种类型仅在类型default_field上有所不同,或者总是将其视为字符串并将其转换为正确的类型当我需要实际将值用于某些东西时。如果“ default_field”的某些值包含数字作为字符串而其他值包含数字作为int,选项2可能会给我带来问题。当我最终传递这些值时,我将无法说出它们的原始类型。

在仍然知道预期的数据类型的同时获取此字段的值时,是否还有一些含糊之处?

0 个答案:

没有答案