Java JSON добавить значение в массиве JSON - PullRequest
0 голосов
/ 11 февраля 2019

как добавить значение в существующий массив json?

У меня есть существующий массив json со значениями ниже

{
  "test": [
    1,
    2,
    3,
    4
  ]
} 

Я хотел добавить «0» в массив json, чтобычто новый массив json будет выглядеть как

{
  "test": [
    0,  
    1,
    2,
    3,
    4
  ]
} 

1 Ответ

0 голосов
/ 11 февраля 2019

Используя Java и библиотеку Джексона, вы можете десериализовать строку (json) в объект Java, добавить запись и затем сериализовать измененный объект (распечатать его в формате Json).

Например,с этим кодом

package json;
import java.util.Collections;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class UseJson {
  public static void main(String[] args) throws Exception {
    ObjectMapper om = new ObjectMapper();
    String json = "{\r\n" + 
    "  \"test\": [\r\n" + 
    "    1,\r\n" + 
    "    2,\r\n" + 
    "    3,\r\n" + 
    "    4\r\n" + 
    "  ]\r\n" + 
    "} ";
    System.out.println("json="+json);
    Wrap val = om.readValue( json, Wrap.class);
    System.out.println("read val="+val);
    val.test.add(0);
    Collections.sort(val.test);
    System.out.println("val="+val);
    om.enable(SerializationFeature.INDENT_OUTPUT);
    String json2 = om.writeValueAsString(val);
    System.out.println("json2="+json2);
  }
}

class Wrap {
  public List<Integer> test;
  @Override
  public String toString() {
    return "Wrap[test=" + test + "]";
  }
}

вы получаете ..

json={
  "test": [
    1,
    2,
    3,
    4
  ]
} 
read val=Wrap[test=[1, 2, 3, 4]]
val=Wrap[test=[0, 1, 2, 3, 4]]
json2={
  "test" : [ 0, 1, 2, 3, 4 ]
}

(для компиляции в проекте Maven, включая jackson-core и jackson-databind)

...