需要将从后台接收过来的String类型字符转换为对象,用到了google的Gson
1.在项目的app的build.gradle中添加
implementation 'com.google.code.gson:gson:2.8.5'
2.更新完成项目之后在需要使用的地方
Gson gson = new Gson();
//把String字符转换成JsonArray对象
JsonArray jsonArray = new JsonParser().parse("需要转化的String字符串").getAsJsonArray();
for (int i = 0; i < jsonArray.size(); i++) {
//将jsonArray的子元素转换为对应的对象
WareHouseItem wh = gson.fromJson(jsonArray.get(i), WareHouseItem.class);
}
PS.
1.在json字符中如果有null对象或者属性的时候gson会直接转换为'null'字符串,百度了一下可以将gson对象的获取方法改为
//设置gson字符null转化为""
GsonBuilder gsonBuilder = new GsonBuilder();
TypeAdapter adapter = new TypeAdapter() {
@Override
public void write(JsonWriter out, String value) throws IOException {
if (value == null) {
// 在这里处理null改为空字符串
out.value("");
return;
}
out.value(value);
}
@Override
public String read(JsonReader in) throws IOException {
if (in.peek() == JsonToken.NULL) {
in.nextNull();
return "";
}
return in.nextString();
}
};
gsonBuilder.registerTypeAdapter(String.class, adapter);
Gson gson = gsonBuilder.create();