将JSON解析为不带根的JAVA对象

将JSON解析为不带根的JAVA对象,json,alfresco,xstream,Json,Alfresco,Xstream,我的户外休息服务的回应是: [ { "role": "SiteManager", "authority": { "authorityType": "USER", "fullName": "admin", "userName": "admin", "firstName": "Administrator", "lastName": "", "url": "\/alfresco\/service\/api\/people\/admin" }, "url"

我的户外休息服务的回应是:

[
{
"role": "SiteManager",
"authority":
{
    "authorityType": "USER",
    "fullName": "admin",
    "userName": "admin",
    "firstName": "Administrator",
    "lastName": "",
    "url": "\/alfresco\/service\/api\/people\/admin"
},
"url": "\/alfresco\/service\/api\/sites\/test3\/memberships\/admin"
}
,
{
"role": "SiteConsumer",
"authority":
{
    "authorityType": "GROUP",
    "shortName": "jamalgg",
    "fullName": "GROUP_jamalgg",
    "displayName": "jamalgg",
    "url": "\/alfresco\/service\/api\/groups\/jamalgg"
},
"url": "\/alfresco\/service\/api\/sites\/test3\/memberships\/GROUP_jamalgg"
}
,
{
"role": "SiteManager",
"authority":
{
    "authorityType": "GROUP",
    "shortName": "ALFRESCO_ADMINISTRATORS",
    "fullName": "GROUP_ALFRESCO_ADMINISTRATORS",
    "displayName": "ALFRESCO_ADMINISTRATORS",
    "url": "\/alfresco\/service\/api\/groups\/ALFRESCO_ADMINISTRATORS"
},
"url": "\/alfresco\/service\/api\/sites\/test3\/memberships\/GROUP_ALFRESCO_ADMINISTRATORS"
}
]
List<Memberships > listMemberships;

public class Memberships {
private String role;
private List<Authority> listAuthority ;
private String url;
}
public class Authority {
private String  authorityType;
private String  shortName;
private String  fullName;
private String  displayName;
private String  url;
}
我想解析到对象列表:

[
{
"role": "SiteManager",
"authority":
{
    "authorityType": "USER",
    "fullName": "admin",
    "userName": "admin",
    "firstName": "Administrator",
    "lastName": "",
    "url": "\/alfresco\/service\/api\/people\/admin"
},
"url": "\/alfresco\/service\/api\/sites\/test3\/memberships\/admin"
}
,
{
"role": "SiteConsumer",
"authority":
{
    "authorityType": "GROUP",
    "shortName": "jamalgg",
    "fullName": "GROUP_jamalgg",
    "displayName": "jamalgg",
    "url": "\/alfresco\/service\/api\/groups\/jamalgg"
},
"url": "\/alfresco\/service\/api\/sites\/test3\/memberships\/GROUP_jamalgg"
}
,
{
"role": "SiteManager",
"authority":
{
    "authorityType": "GROUP",
    "shortName": "ALFRESCO_ADMINISTRATORS",
    "fullName": "GROUP_ALFRESCO_ADMINISTRATORS",
    "displayName": "ALFRESCO_ADMINISTRATORS",
    "url": "\/alfresco\/service\/api\/groups\/ALFRESCO_ADMINISTRATORS"
},
"url": "\/alfresco\/service\/api\/sites\/test3\/memberships\/GROUP_ALFRESCO_ADMINISTRATORS"
}
]
List<Memberships > listMemberships;

public class Memberships {
private String role;
private List<Authority> listAuthority ;
private String url;
}
public class Authority {
private String  authorityType;
private String  shortName;
private String  fullName;
private String  displayName;
private String  url;
}
列出列表成员资格;
公共班级成员资格{
私有字符串角色;
私人名单管理局;
私有字符串url;
}
公共阶级权威{
私有字符串authorityType;
私有字符串短名称;
私有字符串全名;
私有字符串显示名;
私有字符串url;
}
我认为有两种解决办法:

  • 如何将标签成员身份添加到封装的JSON结果中 全部
  • 如何将JSON结果直接解析到我的列表
  • 感谢

    如中所述,我将使用库。

    如中所述,我将使用库。

    您还可以使用从json响应生成java代码,然后使用jackson库()将响应数据绑定到您的对象:

    您还可以使用从json响应生成java代码,然后使用jackson库()将该响应数据绑定到您的对象:


    谢谢你,小奥。我的问题的答案是:

    Type targetType = new TypeToken<Collection<Memberships>>() {}.getType();
    List<Memberships> list = (List<Memberships>)  new Gson().fromJson(renduJson,targetType);
    
    Type targetType=new-TypeToken(){}.getType();
    List List=(List)new Gson().fromJson(renduJson,targetType);
    
    谢谢你,小奥。我的问题的答案是:

    Type targetType = new TypeToken<Collection<Memberships>>() {}.getType();
    List<Memberships> list = (List<Memberships>)  new Gson().fromJson(renduJson,targetType);
    
    Type targetType=new-TypeToken(){}.getType();
    List List=(List)new Gson().fromJson(renduJson,targetType);
    
    很抱歉没有格式化代码

    Type targetType = new TypeToken<Collection<Memberships>>() {}.getType();
    List<Memberships> list = (List<Memberships>)new Gson().fromJson(rendu,targetType);
    
    Type targetType=new-TypeToken(){}.getType();
    List List=(List)new Gson().fromJson(rendu,targetType);
    
    很抱歉没有格式化代码

    Type targetType = new TypeToken<Collection<Memberships>>() {}.getType();
    List<Memberships> list = (List<Memberships>)new Gson().fromJson(rendu,targetType);
    
    Type targetType=new-TypeToken(){}.getType();
    List List=(List)new Gson().fromJson(rendu,targetType);
    
    这里甚至有一个例子:这里甚至有一个例子: