2016-09-09 14 views
0

私はspring mvcを使用しています。ここは私のサービスです。戻り値のJSONObjectのコンバーターがありません

@RequestMapping(value="/data/{id}",method=RequestMethod.POST) 
    @ResponseBody 
    public JSONObject data(@PathVariable Long id ,@RequestBody Long Intake) { 
     JSONObject obj = new JSONObject(); 
     obj.put("test", false); 
      System.out.equals(obj); 
      return obj; 
    } 

、それのようにエラーを投げている:私はゲッター/セッターかもしれ私を指している多くのリンクをチェックして不足しているか@ResponseBody注釈が、私はこれを実行したmissing.soある

java.lang.IllegalArgumentException: No converter found for return value of type: class org.json.JSONObject 

getter/setterを必要とせずにコードを作成できますが、まだこのエラーが表示されます。

この依存関係もインポートしました。

import org.json.*; 

この問題に関するご意見はありますか?

+0

あなたは 'obj.toString()の' http://stackoverflow.com/questions/18972013/jsonobject-alternative-in-spring-and-jackson –

+0

可能性のある重複したメソッドから文字列を返すことができます。http:/ /stackoverflow.com/questions/37380913/spring-restful-webservice-returning-json-without-model-object あなたのニーズを満たす答えを投稿しました。 – itachi

+0

@VladBochenin 'toString()'は少し野蛮です。ジャクソンの有用なアルゴリズムと設定を若干取り入れるからです。私はまた、 "Response-Type"が "application/json"に設定されているかどうかもわかりません。 'toMap()'が良い選択です。 – itachi

答えて

0

1 - あなたのプロジェクトにjacksonを追加してみてください(まだ宣言されていない場合)。

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.5.0</version> 
</dependency> 

または2 - ObjectMapperのシリアル化による文字列を返す。

@RequestMapping(value="/data/{id}",method=RequestMethod.POST) 
@ResponseBody 
public String data(@PathVariable Long id ,@RequestBody Long Intake) { 
    ObjectMapper obj = new ObjectMapper(); 

    Map<String, Object> map = new HashMap<>(); 
    map.put("test", false); 

    return obj.writeValueAsString(map); 
} 
+0

1-jacksonが追加され、宣言されています.2これはobj.writeValueAsString(map)で「処理されていない例外タイプJsonProcessingException」が動作していません。 –

+0

私はstring.iを返そうとはしません返すjsonオブジェクトが必要 –

+0

あなたはそれを試しましたか? \t @RequestMapping(値= "/データ/ {ID}"、方法= RequestMethod.POST) \t @ResponseBody \tパブリック文字列データ(@PathVariableロングID、RequestBodyロングインテーク@){ \t \t試み{ \t \t ObjectMapper obj = new ObjectMapper(); \t \t JSONObject obj = new JSONObject(); \t obj.put( "test"、false); \t System.out.equals(obj); \t \t \t return obj.writeValueAsString(obj); \t \t \t \t \t}キャッチ(JsonProcessingException電子){ \t \t \t // TODO \t \t} \t} – adyjr

関連する問題