我该如何解析这个 json?
How to can I parse this json?
我正在尝试解析 the Json result returned from this url。我想获得标题、内容和缩略图值。我试图制作一个 java class 来映射这些值。
import java.util.List;
public class Dbpediaresults {
private Results results;
public Results getResults() {
return results;
}
public void setResults(Results results) {
this.results = results;
}
public static class Results {
private List<Bindings> bindings;
public List<Bindings> getBindings() {
return bindings;
}
public void setBindings(List<Bindings> bindings) {
this.bindings = bindings;
}
}
public static class Bindings {
private List<Title> title;
private List<content> content;
private List<Thumbnail> thumbnail;
/**
* @return the title
*/
public List<Title> getTitle() {
return title;
}
public void setTitle(List<Title> title) {
this.title = title;
}
public List<content> getContent() {
return content;
}
public void setContent(List<content> content) {
this.content = content;
}
public List<Thumbnail> getThumbnail() {
return thumbnail;
}
public void setThumbnail(List<Thumbnail> thumbnail) {
this.thumbnail = thumbnail;
}
}
private static class Title {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
private static class content {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
private static class Thumbnail {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
}
我试过这个来得到结果,但它不起作用。
Dbpediaresults results = new Gson().fromJson(input, Dbpediaresults.class);
这里的输入是上面 URL 返回的 json 输出的 String
。
我的 Dbpediaresults
class 映射标题、内容和缩略图值是否正确?如果不是,我怎样才能正确解析它?
Gson 不会像这样将 Binding
组分成三个单独的列表。解决此问题的最简单方法是创建包含单个 List<Binding>
的内容,其中 Binding
是代表标题、内容和缩略图三者的 class。最好将它们放在一起,因为多个并行 List
s 是 strong hint that there's a class waiting to be born.
这是一些示例代码。除了解决问题之外,我还对样式和变量名称进行了一些其他小的更改(例如 class Content
在您的代码中变为小写,并删除了设置器)。
public class Dbpediaresults {
private Results results;
public Results getResults() {
return results;
}
public void setResults(Results results) {
this.results = results;
}
public static class Results {
private List<Binding> bindings;
public List<Binding> getBindings() {
return bindings;
}
}
public static class Binding {
private Title title;
private Content content;
private Thumbnail thumbnail;
public Title getTitle() {
return title;
}
public Content getContent() {
return content;
}
public Thumbnail getThumbnail() {
return thumbnail;
}
}
public static class Title {
private String value;
public String getValue() {
return value;
}
}
public static class Content {
private String value;
public String getValue() {
return value;
}
}
public static class Thumbnail {
private String value;
public String getValue() {
return value;
}
}
}
我正在尝试解析 the Json result returned from this url。我想获得标题、内容和缩略图值。我试图制作一个 java class 来映射这些值。
import java.util.List;
public class Dbpediaresults {
private Results results;
public Results getResults() {
return results;
}
public void setResults(Results results) {
this.results = results;
}
public static class Results {
private List<Bindings> bindings;
public List<Bindings> getBindings() {
return bindings;
}
public void setBindings(List<Bindings> bindings) {
this.bindings = bindings;
}
}
public static class Bindings {
private List<Title> title;
private List<content> content;
private List<Thumbnail> thumbnail;
/**
* @return the title
*/
public List<Title> getTitle() {
return title;
}
public void setTitle(List<Title> title) {
this.title = title;
}
public List<content> getContent() {
return content;
}
public void setContent(List<content> content) {
this.content = content;
}
public List<Thumbnail> getThumbnail() {
return thumbnail;
}
public void setThumbnail(List<Thumbnail> thumbnail) {
this.thumbnail = thumbnail;
}
}
private static class Title {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
private static class content {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
private static class Thumbnail {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
}
我试过这个来得到结果,但它不起作用。
Dbpediaresults results = new Gson().fromJson(input, Dbpediaresults.class);
这里的输入是上面 URL 返回的 json 输出的 String
。
我的 Dbpediaresults
class 映射标题、内容和缩略图值是否正确?如果不是,我怎样才能正确解析它?
Gson 不会像这样将 Binding
组分成三个单独的列表。解决此问题的最简单方法是创建包含单个 List<Binding>
的内容,其中 Binding
是代表标题、内容和缩略图三者的 class。最好将它们放在一起,因为多个并行 List
s 是 strong hint that there's a class waiting to be born.
这是一些示例代码。除了解决问题之外,我还对样式和变量名称进行了一些其他小的更改(例如 class Content
在您的代码中变为小写,并删除了设置器)。
public class Dbpediaresults {
private Results results;
public Results getResults() {
return results;
}
public void setResults(Results results) {
this.results = results;
}
public static class Results {
private List<Binding> bindings;
public List<Binding> getBindings() {
return bindings;
}
}
public static class Binding {
private Title title;
private Content content;
private Thumbnail thumbnail;
public Title getTitle() {
return title;
}
public Content getContent() {
return content;
}
public Thumbnail getThumbnail() {
return thumbnail;
}
}
public static class Title {
private String value;
public String getValue() {
return value;
}
}
public static class Content {
private String value;
public String getValue() {
return value;
}
}
public static class Thumbnail {
private String value;
public String getValue() {
return value;
}
}
}