2017-08-07 8 views
-4

私は以下のようなJsonを持っています。春のブートでjson paramを受け取る方法

{"person":[{"name":"asd","age":"22"},{"name":"asd","age":"22"}]} 

が、それはまた次のようになります。

{"person":[{"name":"asd","age":"22"},{"name":"asd","age":"22"}],"city":["NewYork"],"student":"false"} 

私は春のブートコントローラーでそれを受け取ることができますどのように?

答えて

2

@RequestBody注釈を使用する必要があります。

@RequestMapping("/api/example") 
public String example(@RequestBody String string) { 
    return string; 
} 

その後、検証とビジネスロジックを追加します。

http://www.jsonschema2pojo.org/でカスタムクラスを生成できます。生成されたら、Stringの代わりにカスタムクラスを期待できます。

詳細については、this tutorialが興味深いと思います。

+0

私が尋ねた後、私はそれが愚かな質問であることを知りました。この質問にまだ答えてくれてありがとう。 、これは悪い質問であることが分かります。 –

+0

英語は母語ではありません。私の表現能力は限られています。 –

+0

@ NBsaw-あなたがした努力だけを質問するだけの質問はありません。ここで質問する前に、[ask]と[mcve]を読むことをお勧めします。彼らは良い質問をするのに役立ちます。 – xenteros

-2

1)残りのコントローラを変更する必要があります。例

@Autowired 
UserService userService; 

@RequestMapping(value = "/user/", method = RequestMethod.GET) 
public ResponseEntity<List<User>> listAllUsers() { 
    List<User> users = userService.findAllUsers(); 
    if (users.isEmpty()) { 
     return new ResponseEntity(HttpStatus.NOT_FOUND); 
    } 
    return new ResponseEntity<List<User>>(users, HttpStatus.OK); 
} 

2)あなたのPOJOの定義:例

public class User { 

String name; 
String age; 

public User(String name, String age) { 
    this.name = name; 
    this.age = age; 
} 

public String getName() { 
    return name; 
} 

public String getAge() { 
    return age; 
} 
} 

3)

@Service パブリッククラスUserServiceの{

public List<User> findAllUsers(){ 
    // Those are mock data. I suggest to search for Spring-data for interaction with DB. 
    ArrayList<User> users = new ArrayList<>(); 
    User user = new User("name", "5"); 
    users.add(user); 
    return users; 
    } 
} 

サービスを定義しますがthisチュートリアルに従うことができます。あなたが春のブート休憩コントローラにjsonメッセージを送るだけなら、郵便配達人のようなレストクライアントを使うことができます。

+0

このリンクは質問に答えるかもしれませんが、ここでは答えの必須部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 16958352) –

0

以下のようにjsonを受け取ることができます。Spring Bootは、jsonをモデルに変換します(たとえば、下記の「コメント」モデル)。

@RequestMapping(value = "/create", method = RequestMethod.POST) 
public ResultModel createComment(@RequestBody Comment comment) {...} 
関連する問題