2017-03-22 33 views
-1

私はJSONとしてレスポンスを返そうとしています。
検索後、RequestMappingにヘッダ= "Accept = application/json"を追加する解決策が見つかりました。
しかし、まだそれは動作していません。
エラーHTTPステータス406 "この要求で識別されるリソースは、要求"受け入れ "ヘッダーに従って許容できない特性を持つ応答を生成することしかできません。私が間違っているのSpring MVCでJSONをレスポンスとして取得する方法は?

@RestController 
public class EmployeeController { 

    private EmployeeService employeeService; 

    @Autowired(required = true) 
    @Qualifier(value = "employeeService") 
    public void setEmployeeService(EmployeeService employeeService){ 
     this.employeeService = employeeService; 
    } 

    @RequestMapping(value = "/test",method = RequestMethod.GET) 
    public String test(){ 
     return "{\"name\":\"xyz\"}"; 
    } 


    @RequestMapping(value = "/employees",method = RequestMethod.GET,headers = "Accept=application/json") 
    public List<Employee> listEmployees(){ 
     List<Employee> employees = this.employeeService.getEmployees(); 
     return employees; 
    } 
} 

:ここ
は私のコントローラのコードですか?

+0

あなたは=「=アプリケーション/ JSONを受け入れる」ヘッダを追加する前にどのような問題を持っていた完全なチュートリアルに従ってください? – reos

+0

jsonデータを受け取ったり生産したりするかどうかによって、あなたが探しているものは "生産する"/"消費する"と思っています。ここではこれについて読むことができます:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html –

+0

例:RequestMapping( \t \t \t値= "/ API"、 \t \t \t方法= RequestMethod.GET、 \t \t \tは= MediaType.APPLICATION_JSON_VALUEを生成) –

答えて

0

私は、/ employeesのGETリクエストからの返信を送信しようとしていることを理解しています。あなたが要求して送信されるデータのタイプを指定したい場合は 、次のことができますが、あなたが春3.1を使用している場合

、代わりにheaders = "Accept=application/json"

詳細情報を追加するので

@RequestMapping(value = "/employees",method = RequestMethod.GET, produces = "application/json") 

を使用するようにしてください

消費属性

例を使用10

これが消費され、JSON型と応答しますが唯一

チェック春のアップデートについては、このリンクをhttp://spring.io/blog/2011/06/13/spring-3-1-m2-spring-mvc-enhancements/

は、XML応答が@ResponseBody注釈で、それはJSONを生成する

+0

わからない、なぜ誰もが私の答えを再投稿されましたか? –

+0

は、私はこの質問を開いて、投稿にコメントしていることに気づかずに答えをタイプしました。私はちょうど私が答えを追加し、ページがリロードされたことを知っていました。 @Alex Karlsson – AimeTPGM

+0

@Alexあなたは答えを投稿しませんでした。あなたはその質問にコメントしました。 –

1

簡単な方法をお役に立てば幸いです。

@RequestMapping(value =" /jsonPostSingle", method = RequestMethod.GET) 
@ResponseBody 
public PostModel generateJSONPostsingle(@ModelAttribute("postModel") PostModel postModel) { 

if(postModel.getPostId() == 1) { 
postModel.setTitle("post title for id 1"); 
} else { 
postModel.setTitle("default post title"); 
} 
return postModel; 
} 

このようにして、@ModelAttributeを使用してリクエストをモデルクラスにマッピングすることができます。

Spring MVC : JSON response using @ResponseBody

関連する問題