Java JsonPath:将对象插入到另一个对象中

bxgwgixi  于 2023-06-20  发布在  Java
关注(0)|答案(1)|浏览(220)

我使用JayWay JsonPath来操作JSON对象。
我想在JSON数组中插入一个JSON对象:

  1. ### before
  2. {
  3. "students": []
  4. }
  5. ### after
  6. {
  7. "students": [{"id": 1, "name": "Bob"}]
  8. }

我无法在JsonPath中实现这一点。如果我将对象作为字符串添加,它不会被识别为JSON对象:

  1. var context = JsonPath.parse("{\"students\": []}");
  2. context.add("students", "{\"id\": 1, \"name\": \"Bob\"}");
  3. System.out.println(context.jsonString());
  4. // > {"students":["{\"id\": 1, \"lastName\": \"Bob\"}"]}

如果我尝试解析对象,JsonPath会添加一个空对象:

  1. var context = JsonPath.parse("{\"students\": []}");
  2. context.add("students", JsonPath.parse("{\"id\": 1, \"name\": \"Bob\"}"));
  3. System.out.println(context.jsonString());
  4. // > {"students":[{}]}

如何将JSON对象插入数组中?

mwyxok5s

mwyxok5s1#

使用.json()方法:

  1. var context = JsonPath.parse("{\"students\": []}");
  2. Object entryToAdd = JsonPath.parse("{\"id\": 1, \"name\": \"Bob\"}").json();
  3. String updatedJson = context.add("students", entryToAdd).jsonString();
  4. System.out.println(updatedJson);

印刷品
{“学生”:[{“id”:1,“name”:“Bob”}]}

相关问题