问题描述
- 解析包含null的原始json数组
-
Json数组:{"userName":null," msgArr":[null],"numrow":0} //String result
Gson:
new Gson().fromJson(result, MyClass.class);
MyClass:
public String userName; public int[] msgArr; ...
错误stack:
at java.lang.IllegalArgumentException: Primitive array can't take null values. at java.lang.reflect.Array.set(Array.java:406) at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:78) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172) at com.google.gson.Gson.fromJson(Gson.java:803) at com.google.gson.Gson.fromJson(Gson.java:768) at com.google.gson.Gson.fromJson(Gson.java:717) at com.google.gson.Gson.fromJson(Gson.java:689) at com.test.dao.RequestBase.onPostExecute(RequestBase.java:79)
如果不能修改json字符串 "msgArr=[null]",怎么解除这个异常?
解决方案
json里得msgArr的值去掉{},直接写成null试试
解决方案二:
GSON代码调整为下面的试试:
new GsonBuilder()
.seralizeNulls()//处理Null
.create()
.fromJson(result, MyClass.class);
时间: 2023-09-26