我有一个像这样的json:
[
[
"Passport Number",
"NATIONALITY",
"REASONS"
],
[
"SHAIS100",
"INDIA",
""
],
[
"",
"",
"Agent ID is not matched."
],
[
"",
"",
""
]
]
我想将此填充到ArrayList<String[]>
,请告诉我该怎么做?
空字符串不应转换为null。
答案 0 :(得分:43)
这很简单,您只需要执行以下操作:
1.-首先创建Gson
对象:
Gson gson = new Gson();
2.-然后获取Type
的通讯员List<String[]>
(请注意,由于Java type erasure,您无法执行List<String[]>.class
之类的操作):
Type type = new TypeToken<List<String[]>>() {}.getType();
3.-最后将JSON解析为type
类型的结构:
List<String[]> yourList = gson.fromJson(yourJsonString, type);
答案 1 :(得分:12)
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
Tis对您很重要:我们也支持多维数组,具有任意复杂的元素类型
对于null
个对象,默认情况下Gson
不会转换为null。 Ref.
但是,如果您想在以后执行此操作,则可以配置为扫描这些nulls
属性。
Gson
中实现的默认行为是忽略空对象字段。这允许更紧凑的输出格式;但是,客户端必须为JSON
格式转换回Java时为这些字段定义默认值。
以下是配置Gson
实例输出null的方法:
Gson gson = new GsonBuilder().serializeNulls().create();
在您的问题中,您可能不需要配置它。
我希望它有所帮助。