Let's say that's my JSON structure.
{
"books": [
{
"book": {
"description": "Drama",
"date_of_released": "02 September 2015",
"view_node": "read more >"
}
},
{
"book": {
"description": "Horror",
"date_of_released": "02 September 2015",
"view_node": "read more >"
}
}
],
"pager": {
"pages": 1,
"page": 0,
"count": 2,
"limit": 2
}
}
Here is my Book class.
public class Book {
String description;
String date_of_released;
String view_node;
}
That's Pager class.
public class Pager {
int pages;
int page;
int count;
int limit;
}
That's what I made because I thought I need a class for parse JSON. (Not sure is that really needed or not)
public class BookInfo {
ArrayList<Book> books;
Pager pager;
}
After execute, it works for pager perfectly.
But ArrayList's object's individual fields are all null even though the size is 2 as JSON. Why?
Use this
public class BookWrapper {
Book book;
}
public class BookInfo {
ArrayList<BookWrapper> books;
Pager pager;
}
OR reformat the json
{
"books": [
{
"description": "Drama",
"date_of_released": "02 September 2015",
"view_node": "read more >"
},
{
"description": "Horror",
"date_of_released": "02 September 2015",
"view_node": "read more >"
}
],
"pager": {
"pages": 1,
"page": 0,
"count": 2,
"limit": 2
}
}
First of all your json is not valid, to check your json pls go to this link jsonlint.com and to make POJO classes of your json visit this link http://www.jsonschema2pojo.org/
and your valid json should be
{
"books": [
{
"book": {
"description": "Drama",
"date_of_released": "02 September 2015",
"view_node": "read more >"
}
},
{
"book": {
"description": "Horror",
"date_of_released": "02 September 2015",
"view_node": "read more >"
}
}
],
"pager": {
"pages": 1,
"page": 0,
"count": 2,
"limit": 2
}
}
it should work after this!!
Try this -
InnerBook.java
public class InnerBook {
private String description;
private String date_of_released;
private String view_node;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getDate_of_released() {
return date_of_released;
}
public void setDate_of_released(String date_of_released) {
this.date_of_released = date_of_released;
}
public String getView_node() {
return view_node;
}
public void setView_node(String view_node) {
this.view_node = view_node;
}
@Override
public String toString() {
return "InnerBook [description=" + description + ", date_of_released="
+ date_of_released + ", view_node=" + view_node + "]";
}
}
Book.java
public class Book {
private InnerBook book;
public InnerBook getBook() {
return book;
}
public void setBook(InnerBook book) {
this.book = book;
}
@Override
public String toString() {
return "Book [book=" + book + "]";
}
}
Pager.java
public class Pager {
private Long pages;
private Long page;
private Long count;
private Long limit;
public Long getPages() {
return pages;
}
public void setPages(Long pages) {
this.pages = pages;
}
public Long getPage() {
return page;
}
public void setPage(Long page) {
this.page = page;
}
public Long getCount() {
return count;
}
public void setCount(Long count) {
this.count = count;
}
public Long getLimit() {
return limit;
}
public void setLimit(Long limit) {
this.limit = limit;
}
@Override
public String toString() {
return "Pager [pages=" + pages + ", page=" + page + ", count=" + count
+ ", limit=" + limit + "]";
}
}
Holder.java
import java.util.List;
public class Holder {
private List<Book> books;
private Pager pager;
public List<Book> getBooks() {
return books;
}
public void setBooks(List<Book> books) {
this.books = books;
}
public Pager getPager() {
return pager;
}
public void setPager(Pager pager) {
this.pager = pager;
}
@Override
public String toString() {
return "Holder [books=" + books + ", pager=" + pager + "]";
}
}
Main.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.testgson.beans.Holder;
public class Main {
private static Gson gson;
static {
gson = new GsonBuilder().create();
}
public static void main(String[] args) {
String j = "{\"books\":[{\"book\":{\"description\":\"Drama\",\"date_of_released\":\"02 September 2015\",\"view_node\":\"read more >\"}},{\"book\":{\"description\":\"Horror\",\"date_of_released\":\"02 September 2015\",\"view_node\":\"read more >\"}}],\"pager\":{\"pages\":1,\"page\":0,\"count\":2,\"limit\":2}}";
Holder r = gson.fromJson(j, Holder.class);
System.out.println(r);
}
}
Result
Holder [books=[Book [book=InnerBook [description=Drama, date_of_released=02 September 2015, view_node=read more >]], Book [book=InnerBook [description=Horror, date_of_released=02 September 2015, view_node=read more >]]], pager=Pager [pages=1, page=0, count=2, limit=2]]
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.