栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用GSON反序列化嵌套的JSON字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用GSON反序列化嵌套的JSON字符串

试试这个 -

AvatarUrls.java

public class AvatarUrls {    private String _48x48;    private String _24x24;    private String _16x16;    private String _32x32;    public String get_48x48() {        return _48x48;    }    public void set_48x48(String _48x48) {        this._48x48 = _48x48;    }    public String get_24x24() {        return _24x24;    }    public void set_24x24(String _24x24) {        this._24x24 = _24x24;    }    public String get_16x16() {        return _16x16;    }    public void set_16x16(String _16x16) {        this._16x16 = _16x16;    }    public String get_32x32() {        return _32x32;    }    public void set_32x32(String _32x32) {        this._32x32 = _32x32;    }    @Override    public String toString() {        return "AvatarUrls [_48x48=" + _48x48 + ", _24x24=" + _24x24     + ", _16x16=" + _16x16 + ", _32x32=" + _32x32 + "]";    }}

范例.java

import java.util.ArrayList;import java.util.List;public class Example {    private String expand;    private Integer startAt;    private Integer maxResults;    private Integer total;    private List<Issue> issues = new ArrayList<Issue>();    public String getExpand() {        return expand;    }    public void setExpand(String expand) {        this.expand = expand;    }    public Integer getStartAt() {        return startAt;    }    public void setStartAt(Integer startAt) {        this.startAt = startAt;    }    public Integer getMaxResults() {        return maxResults;    }    public void setMaxResults(Integer maxResults) {        this.maxResults = maxResults;    }    public Integer getTotal() {        return total;    }    public void setTotal(Integer total) {        this.total = total;    }    public List<Issue> getIssues() {        return issues;    }    public void setIssues(List<Issue> issues) {        this.issues = issues;    }    @Override    public String toString() {        return "Example [expand=" + expand + ", startAt=" + startAt     + ", maxResults=" + maxResults + ", total=" + total     + ", issues=" + issues + "]";    }}

Fields.java

import java.util.ArrayList;import java.util.List;public class Fields {    private Issuetype issuetype;    private Integer timespent;    private Integer aggregatetimespent;    private Object resolution;    private Object customfield11201;    private Project project;    private List<Issuelink> issuelinks = new ArrayList<Issuelink>();    public Issuetype getIssuetype() {        return issuetype;    }    public void setIssuetype(Issuetype issuetype) {        this.issuetype = issuetype;    }    public Integer getTimespent() {        return timespent;    }    public void setTimespent(Integer timespent) {        this.timespent = timespent;    }    public Integer getAggregatetimespent() {        return aggregatetimespent;    }    public void setAggregatetimespent(Integer aggregatetimespent) {        this.aggregatetimespent = aggregatetimespent;    }    public Object getResolution() {        return resolution;    }    public void setResolution(Object resolution) {        this.resolution = resolution;    }    public Object getCustomfield11201() {        return customfield11201;    }    public void setCustomfield11201(Object customfield11201) {        this.customfield11201 = customfield11201;    }    public Project getProject() {        return project;    }    public void setProject(Project project) {        this.project = project;    }    public List<Issuelink> getIssuelinks() {        return issuelinks;    }    public void setIssuelinks(List<Issuelink> issuelinks) {        this.issuelinks = issuelinks;    }    @Override    public String toString() {        return "Fields [issuetype=" + issuetype + ", timespent=" + timespent     + ", aggregatetimespent=" + aggregatetimespent     + ", resolution=" + resolution + ", customfield11201="     + customfield11201 + ", project=" + project + ", issuelinks="     + issuelinks + "]";    }}

问题.java

public class Issue {    private String expand;    private String id;    private String self;    private String key;    private Fields fields;    public String getExpand() {        return expand;    }    public void setExpand(String expand) {        this.expand = expand;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getSelf() {        return self;    }    public void setSelf(String self) {        this.self = self;    }    public String getKey() {        return key;    }    public void setKey(String key) {        this.key = key;    }    public Fields getFields() {        return fields;    }    public void setFields(Fields fields) {        this.fields = fields;    }    @Override    public String toString() {        return "Issue [expand=" + expand + ", id=" + id + ", self=" + self     + ", key=" + key + ", fields=" + fields + "]";    }}

Issuelink.java

public class Issuelink {    private String id;    private String self;    private Type type;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getSelf() {        return self;    }    public void setSelf(String self) {        this.self = self;    }    public Type getType() {        return type;    }    public void setType(Type type) {        this.type = type;    }    @Override    public String toString() {        return "Issuelink [id=" + id + ", self=" + self + ", type=" + type     + "]";    }}

Issuetype.java

public class Issuetype {    private String self;    private String id;    private String description;    private String iconUrl;    private String name;    private Boolean subtask;    private Integer avatarId;    public String getSelf() {        return self;    }    public void setSelf(String self) {        this.self = self;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getDescription() {        return description;    }    public void setDescription(String description) {        this.description = description;    }    public String getIconUrl() {        return iconUrl;    }    public void setIconUrl(String iconUrl) {        this.iconUrl = iconUrl;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Boolean getSubtask() {        return subtask;    }    public void setSubtask(Boolean subtask) {        this.subtask = subtask;    }    public Integer getAvatarId() {        return avatarId;    }    public void setAvatarId(Integer avatarId) {        this.avatarId = avatarId;    }    @Override    public String toString() {        return "Issuetype [self=" + self + ", id=" + id + ", description="     + description + ", iconUrl=" + iconUrl + ", name=" + name     + ", subtask=" + subtask + ", avatarId=" + avatarId + "]";    }}

Project.java

public class Project {    private String self;    private String id;    private String key;    private String name;    private AvatarUrls avatarUrls;    public String getSelf() {        return self;    }    public void setSelf(String self) {        this.self = self;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getKey() {        return key;    }    public void setKey(String key) {        this.key = key;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public AvatarUrls getAvatarUrls() {        return avatarUrls;    }    public void setAvatarUrls(AvatarUrls avatarUrls) {        this.avatarUrls = avatarUrls;    }    @Override    public String toString() {        return "Project [self=" + self + ", id=" + id + ", key=" + key     + ", name=" + name + ", avatarUrls=" + avatarUrls + "]";    }}

Type.java

public class Type {    private String id;    private String name;    private String inward;    private String outward;    private String self;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getInward() {        return inward;    }    public void setInward(String inward) {        this.inward = inward;    }    public String getOutward() {        return outward;    }    public void setOutward(String outward) {        this.outward = outward;    }    public String getSelf() {        return self;    }    public void setSelf(String self) {        this.self = self;    }    @Override    public String toString() {        return "Type [id=" + id + ", name=" + name + ", inward=" + inward     + ", outward=" + outward + ", self=" + self + "]";    }}

现在,您可以将其测试为-

Main.java

    import com.google.gson.Gson;    import com.google.gson.GsonBuilder;    import com.testgson.beans.Example;    public class Main {        private static Gson gson;        static { gson = new GsonBuilder().create();        }                public static void main(String[] args) {  String j = "{"expand":"names,schema","startAt":0,"maxResults":50,"total":1,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,transitions,renderedFields","id":"18200","self":"https://localhost/rest/api/2/issue/18200","key":"LS-1111","fields":{"issuetype":{"self":"https://localhost/rest/api/2/issuetype/3","id":"3","description":"A task that needs to be done.","iconUrl":"https://localhost/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespent":21600,"aggregatetimespent":25200,"resolution":null,"customfield_11201":null,"project":{"self":"https://localhost/rest/api/2/project/10100","id":"10100","key":"PROJKEY","name":"ProjectABCD","avatarUrls":{"48x48":"https://localhost/secure/projectavatar?pid=10100&avatarId=10600","24x24":"https://localhost/secure/projectavatar?size=small&pid=10100&avatarId=10600","16x16":"https://localhost/secure/projectavatar?size=xsmall&pid=10100&avatarId=10600","32x32":"https://localhost/secure/projectavatar?size=medium&pid=10100&avatarId=10600"}},"issuelinks":[{"id":"16202","self":"https://localhost/rest/api/2/issuelink/16202","type":{"id":"10003","name":"Relates","inward":"relates to","outward":"relates to","self":"https://localhost/rest/api/2/issuelinkType/10003"}}]}}]}";  Example r = gson.fromJson(j, Example.class);  System.out.println(r);// This is how traversal can be done        List<Issue> issues = r.getIssues();        for(Issue i: issues) { System.out.println("Expand - " + i.getExpand()); System.out.println("Id - " + i.getId()); System.out.println("Self - " + i.getSelf()); System.out.println("Key - " + i.getKey()); System.out.println("Fields - " + i.getFields());        }        }    }

结果是-

Example [expand=names,schema, startAt=0, maxResults=50, total=1, issues=[Issue [expand=operations,versionedRepresentations,editmeta,changelog,transitions,renderedFields, id=18200, self=https://localhost/rest/api/2/issue/18200, key=LS-1111, fields=Fields [issuetype=Issuetype [self=https://localhost/rest/api/2/issuetype/3, id=3, description=A task that needs to be done., iconUrl=https://localhost/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype, name=Task, subtask=false, avatarId=10318], timespent=21600, aggregatetimespent=25200, resolution=null, customfield11201=null, project=Project [self=https://localhost/rest/api/2/project/10100, id=10100, key=PROJKEY, name=ProjectABCD, avatarUrls=AvatarUrls [_48x48=null, _24x24=null, _16x16=null, _32x32=null]], issuelinks=[Issuelink [id=16202, self=https://localhost/rest/api/2/issuelink/16202, type=Type [id=10003, name=Relates, inward=relates to, outward=relates to, self=https://localhost/rest/api/2/issuelinkType/10003]]]]]]]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455277.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号