Не удается получить доступ к параметру JSON profilePicture в ответе профиля LinkedIn (Java) - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь получить параметр profilePicture в ответе LinkedIn liteProfile. Однако по какой-то причине они возвращают два объекта json с одним и тем же именем параметра (Кто даже создал этот API?!).

Ответ:

{
    "firstName": {
        "localized": {
            "en_US": "Damien"
        },
        "preferredLocale": {
            "country": "US",
            "language": "en"
        }
    },
    "lastName": {
        "localized": {
            "en_US": "Roger"
        },
        "preferredLocale": {
            "country": "US",
            "language": "en"
        }
    },
    "profilePicture": {
        "displayImage": "urn:li:digitalmediaAsset:C5103AQEGbbhK9i7Qhw",
        "displayImage~": {
            "paging": {
                "count": 10,
                "start": 0,
                "links": []
            },
            "elements": [ 
               {
                  "identifiers": [
                  {
                     "identifier": "https://media.licdn.com/dms/image/C5103AQEGbbhK9i7Qhw/profile-displayphoto-shrink_200_200.....",
                        ....
                  }
               }
            ]
        }
    }
}

Как вы могли заметить, вprofilePicture, есть два параметра с именем displayImage. Один с ~. Как я могу получить к нему доступ из класса Java Pojo?

Мой класс выглядит так:

public class LinkedInProfileResponse {

    public FirstName firstName;
    public LastName lastName;
    public ProfilePicture profilePicture;
    public String id;

    public class ProfilePicture {
        public String displayImage;
        public DisplayImage displayImage;
    }
}

1 Ответ

2 голосов
/ 31 октября 2019

Аннотация @SerializedName может использоваться в поле в вашем POJO, чтобы указать имя атрибута JSON, который будет отображаться в поле Java.

Так в вашем случае:

...
@SerializedName("displayImage~)
public DisplayImage displayImage;
...
...