英文:
Java JsonPath: Insert object into another object
问题
我正在使用JayWay JsonPath来操作JSON对象。
我想要将一个JSON对象插入到JSON数组中:
### 在之前
{
"students": []
}
### 在之后
{
"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\"}"]}
如果我尝试解析该对象,JsonPath会添加一个空对象:
var context = JsonPath.parse("{\"students\": []}");
context.add("students", JsonPath.parse("{\"id\": 1, \"name\": \"Bob\"}"));
System.out.println(context.jsonString());
// > {"students":[{}]}
我如何将JSON对象插入到数组中?
英文:
I am using the JayWay JsonPath to manipulate JSON objects.
I want to insert a JSON object into a JSON array:
### before
{
"students": []
}
### after
{
"students": [{"id": 1, "name": "Bob"}]
}
Somehow I cannot accomplish this in JsonPath. If I add the object as a string, it is not recognized as a JSON object:
var context = JsonPath.parse("{\"students\": []}");
context.add("students", "{\"id\": 1, \"name\": \"Bob\"}");
System.out.println(context.jsonString());
// > {"students":["{\"id\": 1, \"lastName\": \"Bob\"}"]}
If I try to parse the object, JsonPath adds an empty object:
var context = JsonPath.parse("{\"students\": []}");
context.add("students", JsonPath.parse("{\"id\": 1, \"name\": \"Bob\"}"));
System.out.println(context.jsonString());
// > {"students":[{}]}
How can I insert the JSON object into the array?
答案1
得分: 1
Use .json()
method:
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);
prints
{"students":[{"id":1,"name":"Bob"}]}
英文:
Use .json()
method:
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);
prints
> {"students":[{"id":1,"name":"Bob"}]}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论