java - 将 JSON 与 Java 对象中的 List 转换

标签 java json objectmapper

我正在尝试使用 jackson api 中的 ObjectMapper 类将下面的 JSON 转换为 Java 对象,但出现错误。 我的 java 类应该是什么样子?

[{
    "saleValue": 100,
    "priceEventTypeCode": 1,
    "startDate": "2016-03-23T18:00:00.0Z",
    "updateStoredValue": true,
    "autoRound": false,
    "priceChangeNumber": "tkt"
},
{
    "saleValue": 100,
    "priceEventTypeCode": 1,
    "startDate": "2016-03-23T18:00:00.0Z",
    "updateStoredValue": true,
    "autoRound": false,
    "priceChangeNumber": "tkt"
}]

如果我有下面的 json,我可以将其转换为 java 对象。

public class Pid
{
    private String priceChangeNumber;
    private String startDate;
    private String autoRound;
    private String priceEventTypeCode;
    private String saleValue;
    private String updateStoredValue;

    // getter and setter functions removed here.
}

Json:

{
    "saleValue": 100,
    "priceEventTypeCode": 1,
    "startDate": "2016-03-23T18:00:00.0Z",
    "updateStoredValue": true,
    "autoRound": false,
    "priceChangeNumber": "tkt"
}

最佳答案

ObjectMapper 支持以下方法。使用它们:)

    //To Array
    Pid[] pidArray = mapper.readValue(json, Pid[].class);

    //To List
    List<Pid> pidList1 = mapper.readValue(json, new TypeReference<List<Pid>>(){});

    //To List Another way
    List<Pid> pidList2 = mapper.readValue(json, mapper.getTypeFactory().constructCollectionType(List.class, Pid.class));

关于java - 将 JSON 与 Java 对象中的 List 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35518794/

相关文章:

java - 检查我是否可以删除文件

java - Android Video View in another Thread & Issue with android 2.1

java - 加载页面的tomcat问题

ios - Swift - 无法使用类型为 'JSON' 的参数列表调用类型为 '(Response<AnyObject, NSError>)' 的初始值设定项

c# - 使用不同类型序列化/反序列化 System.Object

swift - Alamofire,对象映射器, Realm : Nested Objects

ios - 无法使用对象映射器解析双字符串下方

java - 如何递归打印带缩进的分层列表

c# - 已部署软件上第 1 行错误消息上的 JSON 无效字符?

ios - 使用 Alamofire ObjectMapper 映射到显示 nil 的 Swift 对象问题