无法访问 LinkedIn 个人资料响应中的 profilePicture JSON 参数 (Java)

Unable to access profilePicture JSON parameter in LinkedIn profile response (Java)

我正在尝试检索 LinkedIn liteProfile 响应中的 profilePicture 参数。但是,出于某种原因,它们 return 两个具有相同参数名称的 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 class 访问它?

我的 class 看起来像这样:

public class LinkedInProfileResponse {

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

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

可以在 POJO 中的字段上使用 @SerializedName 注释来指定要映射到 Java 字段的 JSON 属性的名称。

所以在你的情况下:

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