2017-09-11 20 views
0

私はREST APIのjson応答を検証するための自動化スクリプトを作成しています。より高速なxmlを使用してjson形式にシリアル化して変換しています。 私はjsonレスポンスを取得し、新しい配列要素を既存の配列に追加してそれをポストする必要があるユーザーケースがあります。 GET後のJSONレスポンスは次のようになります。jsonオブジェクトの配列に新しい要素を追加するjava

{ 
    "name":"test", 
    "id":"1234", 
    "nodes":[ 
      { 
       "nodeId":"node1" 
      }, 
      { 
       "nodeId":"node2" 
      } 
    ] 
} 

このJSONレスポンスには、私はこれを投稿した後、ノードの配列 { "nodeId": "node3" }のための3つ目のエントリを追加し、する必要があります。

既存の配列に新しい配列要素を追加する方法を理解できますか?

答えて

0

私はむしろ、クリーンなアプローチのために行くの構造の下でオブジェクトを作成します - = objectMapper.readValue(responseJson、 レスポンス

応答応答 -

public class Response{ 
    private String name; 
    private int id; 
    private List<Node> nodes; 
    <Getter & Setter> 
} 
public class Node{ 
    private String nodeId; 
} 
  1. はJSONをシリアライズ。クラス);

  • responseに新しい着信ノードオブジェクトを追加
      は - 。

    response.getNodes()(新規ノード( "{新しいノード値を}" を追加));

    ポスト前
  • デシリアライズ -
  • objectMapper.writeValueAsString(応答)。

    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()を投稿することができます。

    +0

    @Tester_Cary –