我正在编写自动化脚本来验证REST API的json响应,我使用更快的xml来序列化并将java对象转换为json格式。 我有一个用户案例,我必须得到json响应并将一个新的数组元素添加到现有数组并将其发回。 GET之后的json响应如下所示:
{
"name":"test",
"id":"1234",
"nodes":[
{
"nodeId":"node1"
},
{
"nodeId":"node2"
}
]
}
对于这个json响应,我需要为nodes数组添加第三个条目
{ "nodeId": "node3" }
然后发布此内容。
有人可以帮我理解如何将新数组元素添加到现有数组中吗?
答案 0 :(得分:0)
您可以尝试:
//Your JSON response will be in this format
String response = "{ \"name\":\"test\", \"id\":\"1234\", \"nodes\":[ { \"nodeId\":\"node1\" }, { \"nodeId\":\"node2\" } ] }";
try {
JSONObject jsonResponse = new JSONObject(response);
JSONArray nodesArray = jsonResponse.getJSONArray("nodes");
JSONObject newEntry = new JSONObject();
newEntry.put("nodeId","node3");
nodesArray.put(newEntry);
jsonResponse.put("nodes",nodesArray);
} catch (JSONException e) {
e.printStackTrace();
}
现在,您可以根据需要发布jsonResponse.toString()
。
答案 1 :(得分:0)
我宁愿选择更清洁的方法,使用以下结构创建Object -
public class Response{
private String name;
private int id;
private List<Node> nodes;
<Getter & Setter>
}
public class Node{
private String nodeId;
}
响应响应= objectMapper.readValue(responseJson, Response.class);
response
- response.getNodes()。add(新节点(&#34; {新节点值}&#34;));
objectMapper.writeValueAsString(响应);