-1

これが私のJSONです:

{
  "i": 53691,
  "s": "Something" }

これが私のモデルです:

    public class Test() { 
private int i;
private String s;

    public setInt(int i){ this.i = i; }

    public setString(String s){ this.s = s; }

    // getters here

    }

サーバーの応答のクラスは次のとおりです。

  public class ServerResponse(){
  private Test;
 public void setTest(Test test){ this.test = test;}
 public Test getTest(){ return Test; } }

私がする時:

ObjectMapper mapper = new ObjectMapper();
mapper.readValue(json, serverResponse);

次のような例外が発生します。

JsonProcessingException: 認識されないフィールド "i" (クラス MyClass)、無視可能としてマークされていません

ご意見をお聞かせください。

4

2 に答える 2

0

クラス メンバーをパブリックにするか、ゲッター/セッターを提供する必要があります。

あなたの場合、それは次のようになります:

public void setI() { ... }
public void setS() { ... }

setInt()ではないsetString()

個人的には、それらを公開することを好みます-書くのが短く、デバッグが簡単です。

于 2012-11-27T16:23:11.597 に答える