我正在使用JayWay JsonPath来操作JSON对象.

我想将一个JSON对象插入到JSON数组中:

### before
{
  "students": []
}

### after
{
  "students": [{"id": 1, "name": "Bob"}]
}

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

var context = JsonPath.parse("{\"students\":  []}");
context.add("students", "{\"id\":  1, \"name\":  \"Bob\"}");

System.out.println(context.jsonString());
// > {"students":["{\"id\":  1, \"lastName\":  \"Bob\"}"]}

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

var context = JsonPath.parse("{\"students\":  []}");
context.add("students", JsonPath.parse("{\"id\":  1, \"name\":  \"Bob\"}"));

System.out.println(context.jsonString());
// > {"students":[{}]}

如何将JSON对象插入数组?

推荐答案

使用.json()方法:

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

fingerprint

{"学生":[{"id":1,"name":"Bob"}]}

Java相关问答推荐

Spring bootstrap @ Asmat注释与@ Routed

Java Swing绘制gif作为多个JSYS和JLabels的背景

无法从TemporalAccessor获取Instant:{},ISO解析为2024-04- 25 T14:32:42类型为java.time. form.Parsed

Saxon 9:如何从Java扩展函数中的net.sf.saxon.expr. XPathContent中获取声明的变量

将linkedHashMap扩展到Java中的POJO类

在spring—data中自动发现native—sql查询期间遇到重复的SQL别名[id]

Java Swing:初始化身份验证类后未检测到ATM_Interface键事件

嵌入式ActiveMQ Artemis Web控制台加载错误

将关键字与正文中的_Allowed匹配,但带有__Signing可选后缀

获取字符串中带空格的数字和Java中的字符

如何在运行时动态创建表(使用Java、JPA、SprringBoot)

为什么我的在一个范围内寻找素数的程序不能像S所期望的那样工作

将ByteBuffer异步写入InputStream或Channel或类似对象

为了安全起见,有必要复制一份 list 吗?

如何从命令行编译包中的所有类?

在线程Java中调用Interrupt()之后调用Join()

让标签占用JavaFX中HBox的所有可用空间

如何以事务方式向ibmmq发送消息

始终使用Spring Boot连接mongodb上的测试数据库

如何在java中从以百分比表示的经过时间和结束日期中找到开始日期