Как отобразить объект JSON дерева с помощью Jackson в List <> - PullRequest
0 голосов
/ 01 октября 2018

После того, как я выполню запрос, результат преобразуется в JSON.Формат такой:

[
    {
        "version": "1.0.1",
        "device.id": 1234,
        "user.id": 1234,
        "device.platform": "IOS",
        "lastActivity": null,
        "id": 987,
        "when": "2017-08-05",
        "device.platformVersion": "1.2.2",
        "endPointArn": "arn-here-123"
    },
    {
        "version": "1.0.2",
        "device.id": 2345,
        "user.id": 9876,
        "device.platform": "IOS",
        "lastActivity": null,
        "id": 753,
        "when": "2017-08-05",
        "device.platformVersion": "1.2.2",
        "endPointArn": "arn-here-123"
    }
]

Мне нужно отобразить этот JSON для объектов List <>, где:

public class DeviceUser {
  private Integer id;
  private String version;
  private Date when;
  private String endPointArn;
  private Device device;
  private User user;
}

мы можем видеть ключи с помощью attrObject.fieldObject (например: "device.id ": 2345), и я не вижу способа конвертировать в нужный формат.Окончательный формат:

[
    {
        "version": "1.0.1",
        "user": {
            "id": 1234
        },
        "device": {
            "id": 1234,
            "platform": "IOS",
            "platformVersion": "1.2.2"
        },
        "lastActivity": null,
        "id": 987,
        "when": "2017-08-05",
        "endPointArn": "arn-here-123"
    },
    {
        "user": {
            "id": 9876
        },
        "device": {
            "id": 2345,
            "platform": "IOS",
            "platformVersion": "1.2.2"
        },
        "version": "1.0.2",
        "lastActivity": null,
        "id": 753,
        "when": "2017-08-05",
        "endPointArn": "arn-here-123"
    }
]

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Итак, я решил этот случай, используя новый преобразователь в наборе результатов.Преобразователь в действительности просто повторяется по результату и ищет «.».Используя рефлексию.Я думаю, это плохая стратегия.Итак, я принимаю новые ответы.

Я использовал преобразователь: AliasToBeanNestedResultTransformer

0 голосов
/ 01 октября 2018

Если вы используете Джексона, попробуйте пометить поля (или методы получения / установки) аннотацией JsonPropety.

Например:

@JsonProperty("device.id") private Device device;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...