2017-09-05 6 views
1

POST要求で入れ子になったjsonオブジェクトをSpring REST APIに送信しようとしています。Postman to Spring REST APIを使用してPOSTメソッドで入れ子になったjsonオブジェクトを送信する

オブジェクトJavaコード

public class TestModel { 
private String id; 
private String name; 

public TestModel(String id, String name) { 
    this.id = id; 
    this.name = name; 
} 

public String getId() { 
    return id; 
} 

public String getName() { 
    return name; 
} 

}


残りコントローラにPostメソッドコード

@RequestMapping(value = "/helloPost") 
public ResponseEntity<TestModel> helloPost(@RequestBody TestModel t) { 
    return new ResponseEntity<TestModel>(t, HttpStatus.OK); 
} 

私の郵便配達のスクリーンショット

enter image description here


それは私が送っOKステータス200とオブジェクトを返すことがあるが、それは永久に400不正な要求を返します。 どうか私は間違っていると教えてください。私は1つの文字列(私の@RequestBodyも文字列でした)を送信したが、カスタムオブジェクトでは完全には動作していなかったのは大丈夫でした。私はカンマを追加した

P.S は、何もあなたがJSONでidフィールドの後に "" 逃した

+0

テストモデルでは、デフォルトのコンストラクタを追加して試してください。また、addは、コンテンツタイプ値のアノテーションをアプリケーションjsonとして使用します。リクエストヘッダーにも同様に設定します。 – notionquest

+0

ありがとう、それは多くの助けた –

+0

問題が解決しましたか? – notionquest

答えて

1

コメントに記載されているように、TestModelクラスのデフォルトのコンストラクタを追加してください。問題を解決するはずです。

追加手順として、Webサービスがjsonを入力として受け入れる場合、addはコンテンツタイプがapplication jsonの注釈を消費します。

2

を変更しません。適切なJSONは次のようになります。 -

{ 
"id" : "1", 
"name" : "test" 
} 
+0

まだ動作していない、変更なし、ステータス400 –

2

これはサーバーに送信している不正なjsonです。 jsonの要素を区切るにはカンマを追加する必要があります。

郵便配達人でも、左に間違ったアイコンが表示されます。

{ 
"id" : 1, 
"name" : "test" 
} 

また、これらの値を設定するには、オブジェクトモデルにセッターとデフォルトコンストラクタを追加する必要があります。

+0

ありがとうございます。 –

関連する問題