android gson冲突,Gson在android中的使用

需要将从后台接收过来的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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值