Gson反序列化不能正常工作



我有一个jsonarray格式如下:

String jsonArray = {"myList":[{"code":"01","price":"2,3", "date":"21/12/2014"},{"code":"02","price":"3,4", "date":"26/12/2014"}]}

Mylist类是:

public class MyList {
    private String code;
    private String price;
    private String date;
    //..getter and setter
}

我的不工作的"反序列化器"如下:

ObjectMapper objectMapper = new ObjectMapper();
List<MyList> list = new ObjectMapper().readValue(jsonArray, new TypeReference<List<MyList>>() { });

捕获以下异常:

       org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

我怎么解决这个问题?提前感谢!

这是我自己使用Gson的工作解决方案:

String jsonArray = {"myList":[{"code":"01","price":"2,3", "date":"21/12/2014"},{"code":"02","price":"3,4", "date":"26/12/2014"}]}
Gson gson = new Gson();
JsonParser parser = new JsonParser();
List<MyList> list = new ArrayList<MyList>();
try {
    JsonArray jArray = (JsonArray) parser.parse(jsonArray).getAsJsonObject().get("myList");
    for (JsonElement jObj : jArray) {
            MyList item = gson.fromJson( jObj , MyList.class);
            list.add(item);
    }
    } catch (Exception e) {
        e.printStackTrace();
    }

希望对其他用户有用!

最新更新