使用GSON从json数组中删除空对象

dohp0rv5  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(248)
{
  "ChangeRequests": [
    {}
  ]
}

使用Gson从JSON数组中删除空模型。因为它在列表中创建一个模型,所以使用Gson将模型中的所有值都设置为空

data class TestRequest(
@SerializedName("ChangeRequests")
val changeRequests: List<ChangeRequest>

val result = Gson().fromJson(jsonString,TestRequest::class.java)
ergxz8rk

ergxz8rk1#

简单代码:对我很有效!

Type type = new TypeToken<Map<String, Object>>() {}.getType();
Map<String, Object> data = new Gson().fromJson(jsonString, type);

for (Iterator<Map.Entry<String, Object>> it = data.entrySet().iterator(); 
it.hasNext();) {
Map.Entry<String, Object> entry = it.next();
if (entry.getValue() == null) {
    it.remove();
} else if (entry.getValue().getClass().equals(ArrayList.class)) {
    if (((ArrayList<?>) entry.getValue()).size() == 0) {
        it.remove();
    }
 }
}

String json = new GsonBuilder().setPrettyPrinting().create().toJson(data);
System.out.println(json);

相关问题