Есть такой JSON
{"list_request":[{
		   "client_id":"111",
	           "phone":"111111111"
	          },
		 {
		    "client_id":"222",
		    "phone":"22222222"
		  },
		 {
		    "client_id":"333",
		    "phone":"33333333"}]
}
 
передаю его в body через hashmap:
     Map<String,String> verifyData = new HashMap<>();
        verifyData.put("client_id", "111");
        verifyData.put("phone", "111111111");
        verifyData.put("client_id", "222");
        verifyData.put("phone", "22222222");
        verifyData.put("client_id", "333");
        verifyData.put("phone", "33333333");
response = expect().statusCode(200)
                .given().spec(spec)
                .body(verifyData)
                .when()
                .post("/create");
        getResponseBody();
 
Естественно, при запуске, хешмапа каждый раз перезаписывает одинаковый ключи и выдает последний массив 
Body: { "phone": "33333333", "client_id": "333" } 
а создавать новый обьект хешмап под каждый массив [client_id, phone] не очень нормально. 
Как создать нормальный post body с одинаковыми параметрами ?
         
         
           
        
            
            
           1 лайк 
         
         
             
             
          
       
      
        
          
          
            Polmik  
            (Egor Ryaboshapko)
           
           
          
              
                09.Март.2017 11:04:26
               
               
          #2 
           
         
        
          HashMap реализует концепцию : уникальный ключ  - значение. 
Не может быть два ключа с одним и тем же именем
Использовать разные ключи 
Использовать не HashMap<String,String>, а HashMap<String,Array>. 
Тут считываем по ключу массив, и добавляем в него новое значение 
что-то вроде 
 
class Phone{
  String id;
  String number;
public Phone(String id,String number){}
//реализация класса (геттеры, сеттеры)
}
...
List<Phone> list=new ArrayList<Phone>();
HashMap<String,List<Phone>> map=new HashMap<>();
void add value(){
  put(phone,list);
  //добавление новых значение
  get(phone).add(new Phone(параметры в конструктор));
}
 
3. Поменять логику избавившись от HashMap
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            Daniil  
            
           
           
          
              
                09.Март.2017 12:00:04
               
               
          #3 
           
         
        
          Как вариант(если нужны именно мапы):
List<Map> list = ImmutableList.of(
                ImmutableMap.of("client_id", "111", "phone", "111111111"),
                ImmutableMap.of("client_id", "222", "phone", "22222222"),
                ImmutableMap.of("client_id", "333", "phone", "33333333"));
response = expect().statusCode(200)
                .given().spec(spec)
                .body(ImmutableMap.of("list_request", list))
                .when()
                .post("/create");
 
Immutable List/Map из com.google.guava , можно использовать обычные List/Map
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          хороший вариант, спасибо 
но я нашел более аккуратный способ через загрузку из YAML файла 
кому интересно http://yamlbeans.sourceforge.net/ 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            iCok  
            (Nikita)
           
           
          
              
                14.Июнь.2017 17:47:45
               
               
          #5 
           
         
        
          можешь ещё посмотреть в сторону http://www.jsonschema2pojo.org/ 
Генеришь себе pojo класс. 
И дальше работаешь с обычным java объектом.
List<ListRequest> list = new ArrayList();
list.add(new ListRequest().withClientId(1).withPhone(111));
JsonObject object = new JsonObject().withListRequest(list);
expect().statusCode(200)
                .given().spec(spec)
                .body(object)
                .when()
                .post("/create");
 
         
         
        
            
            
           2 лайка 
         
         
             
             
          
       
      
        
          
          
            LaFee  
            (Arina)
           
           
          
              
                09.Октябрь.2018 11:06:18
               
               
          #6 
           
         
        
          
 iCok:
 
withListRequest
 
 
что подразумевалось под withListRequest?
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            Keda  
            (Ruslan Semerenko)
           
           
          
              
                09.Октябрь.2018 12:20:10
               
               
          #7 
           
         
        
          Скорее всего это ExtensionMethod, сотканный с помощью lombok, в котором автор создает JsonObject с полями из ListRequest. 
Используйте Gson::toJson для сериализации объекта в json-строку. Либо ObjectMapper::writeValueAsString если используется jackson-databind.