如何使用GSON / JSON将字符串数组转换为对象?

2022-09-02 22:50:52

我有一个这样的json:

[
  [
    "Passport Number",
    "NATIONALITY",
    "REASONS"
  ],
  [
    "SHAIS100",
    "INDIA",
    ""
  ],
  [
    "",
    "",
    "Agent ID is not matched."
  ],
  [
    "",
    "",
    ""
  ]
]

我想填充这个,请告诉我该怎么做?ArrayList<String[]>

空字符串不应转换为 null。


答案 1

这很简单,您只需要执行以下操作:

1.- 首先创建对象:Gson

Gson gson = new Gson();

2.- 然后获取你的通讯员(请注意,由于Java的类型擦除,您无法执行类似操作):TypeList<String[]>List<String[]>.class

Type type = new TypeToken<List<String[]>>() {}.getType();

3.- 最后将 JSON 解析为以下类型的结构:type

List<String[]> yourList = gson.fromJson(yourJsonString, type);

答案 2

看看Gson文档

Gson gson = new Gson();
int[] ints = {1, 2, 3, 4, 5};
String[] strings = {"abc", "def", "ghi"};

(Serialization)
gson.toJson(ints);     ==> prints [1,2,3,4,5]
gson.toJson(strings);  ==> prints ["abc", "def", "ghi"]

(Deserialization)
int[] ints2 = gson.fromJson("[1,2,3,4,5]", int[].class); 
==> ints2 will be same as ints

这对您很重要:我们还支持具有任意复杂元素类型的多维数组

对于对象,默认情况下不会转换为 null。裁判。但是,如果要在之后进行扫描,则可以将其配置为扫描这些属性。nullGsonnulls

中实现的默认行为是忽略空对象字段。这允许更紧凑的输出格式;但是,客户端必须为这些字段定义默认值,因为格式将转换回其 Java。GsonJSON

下面介绍如何将 Gson 实例配置为输出 null:

Gson gson = new GsonBuilder().serializeNulls().create();

在您的问题中,也许您不需要对其进行配置。

我希望它有帮助。