2017-03-02 4 views
1

ここに私の投稿したいJsonbodyがあり、Info(親ノード)と共にファックス、ファックスなどの子ノードのPOJOを作成しました。私は子供のノードの要素を取得することはできません、情報要素は正常に動作します。RestAssured、io.RestAssuredのネストされたjsonのPOJOオブジェクトを渡すことができません

info 
     { 
      "Name": "Auto Test", 
      "addressLine1": "4399 Apple ln", 
      "city": "BlahWonders", 
      "state": "GA", 
      "zipCode": "30555", 
      "phone": { 
      "countryCode": "1", 
      "areaCode": "678", 
      "dialNumber": "3196864" 
      }, 
      "fax": { 
      "countryCode": "1", 
      "nationalPrefix": "1", 
      "areaCode": "333", 
      "dialNumber": "3333333" 
      }, 

    } 

私はrespeciveクラスInfo、phone、faxのためにPOJOクラスを作成しました。 各クラスの値をそれぞれ設定するための新しいオブジェクトを作成しました。私の情報クラス勿論、以下があります。

private String name; 
private String addressLine1; 
private String city; 
private String state; 
private String zipCode; 
private HashMap<String,Phone> phone; 
private HashMap<String,Fax> fax; 
Info info = new Info(); 
     Phone phone = new Phone(); 
     phone.setAreaCode("333"); 
     phone.setCountryCode(""); 
     phone.setDialNumber("666666"); 
     Fax fax = new Fax(); 
     fax.setAreaCode("555"); 
     fax.setCountryCode("usa"); 
     fax.setDialNumber("9999999"); 
     HashMap<String,Fax> faxMap= new HashMap<String,Fax>(); 
     faxMap.put("fax",fax); 
     HashMap<String,Phone> phoneMap= new HashMap<String,Phone>(); 
     phoneMap.put("phone",phone); 
     info.setFax(faxMap); 
     info.setPhone(phoneMap); 
. 
. 
. 
. 

ポストのためのRestAssured検証:いただきました!これで間違っている私は400

given().contentType("application/json").body(info).when().post("/info/add"); 

を得る誰かが言うことはできますか?私は郵便配達で同じことを試して、それは動作します。私は電話とファックスは、HashMapのちょうど飛行機のオブジェクトではありませんあなたのケースでは、エラー「認識できないプロパティ '携帯電話の

+0

ハード従うことをあなたはいくつかの詳細を共有できるように – Coder

答えて

0

を取得する例次の必要な出力を提供します:。

@Data //using lombok annotation to reduce code amount 
@AllArgsConstructor 
public class Phone { 
    private String countryCode; 
    private String areaCode; 
    private String dialNumber; 
} 

@Data 
public class Fax { 
@AllArgsConstructor 
    private String countryCode; 
    private String nationalPrefix; 
    private String areaCode; 
    private String dialNumber; 
} 

@Data 
@AllArgsConstructor 
public class Info { 
    private String name; 
    private String addressLine1; 
    private String city; 
    private String state; 
    private String zipCode; 
    private Phone phone; 
    private Fax fax; 
} 

public void test() { 
... 
given() 
     .when() 
      .contentType(ContentType.JSON) 
      .body(new Info("Auto Test", "4399 Apple ln", "BlahWonders", GA", "30555", 
        new Phone("1", "678", "3196864"), 
        new Fax("1", "1", "333", "3333333"))) 
... 
} 

しかし、の場合:

@Data 
@AllArgsConstructor 
public class Info { 
    private String name; 
    private String addressLine1; 
    private String city; 
    private String state; 
    private String zipCode; 
    private Map<String, Phone> phones; 
    private Map<String, Fax> faxes; 
} 

あなたが取得します:。

{ 
    "name": "Auto Test", 
    "addressLine1": "4399 Apple ln", 
    "city": "BlahWonders", 
    "state": "GA", 
    "zipCode": "30555", 
    "phones": { 
    "phone": { 
     "countryCode": "1", 
     "areaCode": "678", 
     "dialNumber": "3196864" 
    } 
    }, 
    "faxes": { 
    "fax": { 
     "countryCode": "1", 
     "nationalPrefix": "1", 
     "areaCode": "333", 
     "dialNumber": "3333333" 
    } 
    } 
} 
+0

ありがとうRocketRaccoon、私は別のpojoへのファックスをchagingしています、hashmapでも動作しますが、実際にテストに失敗したデータ検証エラーがありました。 –

関連する問題