web-dev-qa-db-ja.com

クラスorg.json.JSONObjectのシリアライザーが見つからず、BeanSerializerを作成するためのプロパティが見つかりません

webサービスからのJSON、Json配列を応答として

   [3]
   0:  {
   id: 2
  name: "a561137"
    password: "test"
  firstName: "abhishek"
   lastName: "ringsia"
    organization: "bbb"
      }-
    1:  {
      id: 3
  name: "a561023"
password: "hello"
     firstName: "hello"
   lastName: "hello"
     organization: "hello"
   }-
 2:  {
  id: 4
  name: "a541234"
  password: "hello"
 firstName: "hello"
  lastName: "hello"
  organization: "hello"
    }

JsonArrayで応答を取得した後、Json配列のJsonオブジェクトの読み取り中にエラーを取得します。

List<User> list = new ArrayList<User>();
JSONArray jsonArr = new JSONArray(response);

for (int i = 0; i < jsonArr.length(); i++) {
    JSONObject jsonObj = jsonArr.getJSONObject(i);
    ObjectMapper mapper = new ObjectMapper();
    User usr=   mapper.convertValue(jsonObj, User.class);
    list.add(usr);
}

クラスorg.json.JSONObjectのシリアライザーが見つからず、BeanSerializerを作成するためのプロパティが見つかりません(例外を回避するには、SerializationConfig.Feature.FAIL_ON_EMPTY_BEANSを無効にします)

8

最初にそれをJson配列として受け入れる必要があります。次に、そのオブジェクトの読み取り中にObject Mapper.readValueを使用する必要があります。これは、Jsonオブジェクトが文字列のままであるためです。

List<User> list = new ArrayList<User>();
JSONArray jsonArr = new JSONArray(response);

for (int i = 0; i < jsonArr.length(); i++) {
    JSONObject jsonObj = jsonArr.getJSONObject(i);
    ObjectMapper mapper = new ObjectMapper();
    User usr = mapper.readValue(jsonObj.toString(), User.class);      
    list.add(usr);
}
2