Я хочу отобразить объект json, вложенный в другой объект, в POJO, используя библиотеку Джексона - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть объект, вложенный в другой объект в файле Json.Я хочу сопоставить этот объект с полями классу Model.

{
"code": 200,
"time": "2019-09-05T07:09:44.228+0000",
"data": {
    "statuses": [
        {
            "statusType": "IN_PROGRESS",
            "statusTimestamp":"019-09-05T17:04:54+1000"
        },
        {
            "statusType": "SENT",
            "statusTimestamp":"2019-09-05T21:04:55+1000"
        },
        {
            "statusType": "OPENED",
            "statusTimestamp":"2019-09-05T23:04:55+1000"
        },
        {
            "statusType": "INTERACTION_ID_RECEIVED",
            "statusTimestamp":"2019-09-06T00:04:55+1000"
        }
    ]
},
"status": 200,
"message": null,
"errors": null,
}

Я хочу сопоставить statusType и TimeStamp с пользовательским классом модели.

Класс модели:

public class Model {

private String statusType;
private DateTime statusTimestamp;

public Model(String statusType, String statusTimestamp) {
    this.statusType=statusType;
    this.statusTimestamp=new DateTime(statusTimestamp);
}
public String getStatusType() {
    return statusType;
}

public void setStatusType(String statusType) {
    this.statusType = statusType;
}

public DateTime getStatusTimestamp() {
    return statusTimestamp;
}

public void setStatusTimestamp(String statusTimestamp) {
    this.statusTimestamp = new DateTime(statusTimestamp);
}

}

Я хочу сопоставить статусы с этим классом модели и сохранить эти объекты в виде ссылки, похожей на эту

List statuses =ParsedJson.read ("$ .. ['statuses'] [*]", List.class)

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

Если вы не хотите моделировать весь ответ, вы можете использовать Джексона для анализа JSON в узлах дерева и затем отобразить только те части, которые вам нужны:

ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree(json);
JsonNode statusesNode = rootNode.path("data").path("statuses");
List<Status> statuses = mapper.convertValue(statusesNode,
    new TypeReference<List<Status>>(){});
0 голосов
/ 19 сентября 2019

Я видел 2 ошибки в строке json, исправляя это, это должно помочь вам легко создать Объект, используя java или любой другой язык.

строка 12: "пропущена строка 26: неправильное размещение,

Json после исправления проблем

{
"code": 200,
"time": "2019-09-05T07:09:44.228+0000",
"data": {
    "statuses": [
        {
            "statusType": "IN_PROGRESS",
            "statusTimestamp":"019-09-05T17:04:54+1000"
        },
        {
            "statusType": "SENT",
            "statusTimestamp":"2019-09-05T21:04:55+1000"
        },
        {
            "statusType": "OPENED",
        "statusTimestamp":"2019-09-05T23:04:55+1000"
        },
        {
            "statusType": "INTERACTION_ID_RECEIVED",
        "statusTimestamp":"2019-09-06T00:04:55+1000"
        }
    ]
},
"status": 200,
"message": null,
"errors": null
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...