Как удалять ключ и стоимость в json с java?

у меня есть следующий недостаток:

Я работаю с json, но нуждаюсь в том, чтобы забрать ключ и стоимость, когда стоимость пустая.

introducir la descripción de la imagen aquí

Мне нужно, чтобы contribuyenteEspecial уже он не был принят во внимание. Кто-то, кто мог бы помогать мне?

Большое спасибо.

0
задан 10.01.2019, 08:24
2 ответа

Ты можешь помогать себя какой-то liberГ - в как Gson или Джексон.

Например с Gson, если ты перемещаешь этот Json в объект типа Gson, podrГ-эксперт удалять вышеупомянутый ключ с

jsonObj.getAsJsonObject("infoFactora").remove("contribuyenteEspecial");
0
ответ дан 20.11.2019, 01:29
  • 1
    Спасибо, действительно он удаляется, но ¿ có mo я могу перемещать объект тип json gson снова? –  Carmen A. 10.01.2019, 09:25
  • 2
    Мира ла librerí в Gson: mkyong.com/java/… . Ahí приходят примеры как конвертировать объекты в json и наоборот. С gson.toJson (json) я верю в то, что ты valdrí в –  Adrián Cejudo Ruiz 15.01.2019, 02:04

Решение могло бы состоять в том, чтобы перемещать json из-за Map, пробегать это и удалять тех, которые находят пустоту, что-либо подобное:

String json = "{'clave1': 'hola', 'clave2': '', 'clave3': 'valor', 'clave4': null}"; 
Type type = new TypeToken<Map<String, Object>>() {}.getType(); 
Map<String, Object> data = new Gson().fromJson(json, type); 

for (Iterator<Map.Entry<String, Object>> it = data.entrySet().iterator(); it.hasNext();) { 
    Map.Entry<String, Object> entry = it.next(); 
    if (entry.getValue() == null || entry.getValue() == "") { 
     it.remove(); 
    } else if (entry.getValue() instanceof ArrayList) { 
     if (((ArrayList<?>) entry.getValue()).isEmpty()) { 
      it.remove(); 
     } 
    } 
} 

json = new GsonBuilder().setPrettyPrinting().create().toJson(data); 
System.out.println(json); 
0
ответ дан 20.11.2019, 01:29