JSON以java对象与GSON(对象嵌套的ArrayList) [英] json to java object with gson ( object nested with arraylist )
问题描述
我要创建具有以下JSON对象的一个清单。但我认为不会创建ArrayList的类别。我没有异常调试控制台进入bucle当创建对象:背景部分并发标记扫描GC释放165848(5MB)AllocSpace对象,144(1852KB)LOS对象,22%免费,55MB / 71MB,暂停5.343ms总67.660ms
I want to create a object Checklist with the following JSON. But I think the Arraylist categories isn't created. I do not have an exception the debug console enter into bucle when create the object : " Background partial concurrent mark sweep GC freed 165848(5MB) AllocSpace objects, 144(1852KB) LOS objects, 22% free, 55MB/71MB, paused 5.343ms total 67.660ms "
{"type_check":"CAB","description":"simple cabin","categories":[{"category_id":"3","description":"Confort"},{"category_id":"4","description":"Servicios"},{"category_id":"5","description":"Alimentación"},{"category_id":"6","description":"Personal"},{"category_id":"7","description":"Instalaciones"}]}
和以下类:
Checklist.class
Checklist.class
public class Checklist {
private String type_check;
private String description;
private ArrayList<Category> categories;}
Category.class
Category.class
public class Category {
private int category_id;
private String description;
}
创建对象:
Gson gson = new GsonBuilder().create();
Checklist check = gson.fromJson(checklist.toString(), Checklist.class);
当我解析JSON我必须指定ArrayList的?感谢,并有一个愉快的一天。
I must specify the arraylist when I parse the json?? Thanks and have a nice day.
推荐答案
这是JSON如何将看起来像下面code
this is how the json would look like with following code
[
{
"type_check": "CAB_0",
"description": "simple cabin",
"categories": [
{
"category_id": 0,
"description": "Description_0"
},
{
"category_id": 1,
"description": "Description_1"
},
{
"category_id": 2,
"description": "Description_2"
},
{
"category_id": 3,
"description": "Description_3"
},
{
"category_id": 4,
"description": "Description_4"
},
{
"category_id": 5,
"description": "Description_5"
},
{
"category_id": 6,
"description": "Description_6"
}
]
},
{
type_check:CAB_1,
说明:简单的小屋,
类别:
{
CATEGORY_ID:0,
说明:Description_0
},
{
CATEGORY_ID:1,
说明:DESCRIPTION_1
},
{
CATEGORY_ID:2,
说明:Description_2
},
{
CATEGORY_ID:3,
说明:Description_3
},
{
CATEGORY_ID:4,
说明:Description_4
},
{
CATEGORY_ID:5,
说明:Description_5
},
{
CATEGORY_ID:6,
说明:Description_6
}
]
},
{
type_check:CAB_2,
说明:简单的小屋,
类别:
{
CATEGORY_ID:0,
说明:Description_0
},
{
CATEGORY_ID:1,
说明:DESCRIPTION_1
},
{
CATEGORY_ID:2,
说明:Description_2
},
{
CATEGORY_ID:3,
说明:Description_3
},
{
CATEGORY_ID:4,
说明:Description_4
},
{
CATEGORY_ID:5,
说明:Description_5
},
{
CATEGORY_ID:6,
说明:Description_6
}
]
},
{
type_check:CAB_3,
说明:简单的小屋,
类别:
{
CATEGORY_ID:0,
说明:Description_0
},
{
CATEGORY_ID:1,
说明:DESCRIPTION_1
},
{
CATEGORY_ID:2,
说明:Description_2
},
{
CATEGORY_ID:3,
说明:Description_3
},
{
CATEGORY_ID:4,
说明:Description_4
},
{
CATEGORY_ID:5,
说明:Description_5
},
{
CATEGORY_ID:6,
说明:Description_6
}
]
},
{
type_check:CAB_4,
说明:简单的小屋,
类别:
{
CATEGORY_ID:0,
说明:Description_0
},
{
CATEGORY_ID:1,
说明:DESCRIPTION_1
},
{
CATEGORY_ID:2,
说明:Description_2
},
{
CATEGORY_ID:3,
说明:Description_3
},
{
CATEGORY_ID:4,
说明:Description_4
},
{
CATEGORY_ID:5,
说明:Description_5
},
{
CATEGORY_ID:6,
说明:Description_6
}
]
},
{
type_check:CAB_5,
说明:简单的小屋,
类别:
{
CATEGORY_ID:0,
说明:Description_0
},
{
CATEGORY_ID:1,
说明:DESCRIPTION_1
},
{
CATEGORY_ID:2,
说明:Description_2
},
{
CATEGORY_ID:3,
说明:Description_3
},
{
CATEGORY_ID:4,
说明:Description_4
},
{
CATEGORY_ID:5,
说明:Description_5
},
{
CATEGORY_ID:6,
说明:Description_6
}
]
},
{
type_check:CAB_6,
说明:简单的小屋,
类别:
{
CATEGORY_ID:0,
说明:Description_0
},
{
CATEGORY_ID:1,
说明:DESCRIPTION_1
},
{
CATEGORY_ID:2,
说明:Description_2
},
{
CATEGORY_ID:3,
说明:Description_3
},
{
CATEGORY_ID:4,
说明:Description_4
},
{
CATEGORY_ID:5,
说明:Description_5
},
{
CATEGORY_ID:6,
说明:Description_6
}
]
}
]
}, { "type_check": "CAB_1", "description": "simple cabin", "categories": [ { "category_id": 0, "description": "Description_0" }, { "category_id": 1, "description": "Description_1" }, { "category_id": 2, "description": "Description_2" }, { "category_id": 3, "description": "Description_3" }, { "category_id": 4, "description": "Description_4" }, { "category_id": 5, "description": "Description_5" }, { "category_id": 6, "description": "Description_6" } ] }, { "type_check": "CAB_2", "description": "simple cabin", "categories": [ { "category_id": 0, "description": "Description_0" }, { "category_id": 1, "description": "Description_1" }, { "category_id": 2, "description": "Description_2" }, { "category_id": 3, "description": "Description_3" }, { "category_id": 4, "description": "Description_4" }, { "category_id": 5, "description": "Description_5" }, { "category_id": 6, "description": "Description_6" } ] }, { "type_check": "CAB_3", "description": "simple cabin", "categories": [ { "category_id": 0, "description": "Description_0" }, { "category_id": 1, "description": "Description_1" }, { "category_id": 2, "description": "Description_2" }, { "category_id": 3, "description": "Description_3" }, { "category_id": 4, "description": "Description_4" }, { "category_id": 5, "description": "Description_5" }, { "category_id": 6, "description": "Description_6" } ] }, { "type_check": "CAB_4", "description": "simple cabin", "categories": [ { "category_id": 0, "description": "Description_0" }, { "category_id": 1, "description": "Description_1" }, { "category_id": 2, "description": "Description_2" }, { "category_id": 3, "description": "Description_3" }, { "category_id": 4, "description": "Description_4" }, { "category_id": 5, "description": "Description_5" }, { "category_id": 6, "description": "Description_6" } ] }, { "type_check": "CAB_5", "description": "simple cabin", "categories": [ { "category_id": 0, "description": "Description_0" }, { "category_id": 1, "description": "Description_1" }, { "category_id": 2, "description": "Description_2" }, { "category_id": 3, "description": "Description_3" }, { "category_id": 4, "description": "Description_4" }, { "category_id": 5, "description": "Description_5" }, { "category_id": 6, "description": "Description_6" } ] }, { "type_check": "CAB_6", "description": "simple cabin", "categories": [ { "category_id": 0, "description": "Description_0" }, { "category_id": 1, "description": "Description_1" }, { "category_id": 2, "description": "Description_2" }, { "category_id": 3, "description": "Description_3" }, { "category_id": 4, "description": "Description_4" }, { "category_id": 5, "description": "Description_5" }, { "category_id": 6, "description": "Description_6" } ] } ]
Checklist.Java code是这里
Checklist.Java code is here
public class Checklist {
private String type_check;
private String description;
private ArrayList<Category> categories;
public String getType_check() {
return type_check;
}
public void setType_check(String type_check) {
this.type_check = type_check;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public ArrayList<Category> getCategories() {
return categories;
}
public void setCategories(ArrayList<Category> categories) {
this.categories = categories;
}
}
Category.java code是这里
Category.java code is here
public class Category {
private int category_id;
private String description;
public int getCategory_id() {
return category_id;
}
public void setCategory_id(int category_id) {
this.category_id = category_id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
测试code.Java code是这里
TestCode.Java code is here
import java.util.ArrayList;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class TestCode {
public static void main(String[] args) {
ArrayList<Checklist> list = new ArrayList<Checklist>();
list = createList();
String stringJson = (new Gson()).toJson(list);
System.out.println("##### JSON from a object #######");
System.out.println(stringJson);
System.out.println("###### Convert JSON to object ######");
ArrayList<Checklist> list2 = new ArrayList<Checklist>();
list2 = (new Gson()).fromJson(stringJson,
new TypeToken<ArrayList<Checklist>>() {
}.getType());
System.out.println("####### print out put ######");
for (int i = 0; i < list2.size(); i++) {
Checklist checklist = list2.get(i);
System.out.println(checklist.getType_check() + "");
System.out.println(checklist.getDescription() + "");
ArrayList<Category> categorys = checklist.getCategories();
for (int j = 0; j < categorys.size(); j++) {
Category category = categorys.get(j);
System.out.println(category.getCategory_id() + "");
System.out.println(category.getDescription() + "");
}
}
}
private static ArrayList<Checklist> createList() {
// TODO Auto-generated method stub
ArrayList<Checklist> list = new ArrayList<Checklist>();
for (int i = 0; i < 7; i++) {
Checklist checklist = new Checklist();
checklist.setType_check("CAB_" + i);
checklist.setDescription("simple cabin");
ArrayList<Category> categorys = new ArrayList<Category>();
for (int j = 0; j < 7; j++) {
Category category = new Category();
category.setCategory_id(j);
category.setDescription("Description_" + j);
categorys.add(category);
}
checklist.setCategories(categorys);
list.add(checklist);
}
return list;
}
}
这篇关于JSON以java对象与GSON(对象嵌套的ArrayList)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!