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を無効にします)
最初にそれを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);
}