Java 使用GSON时添加到JSON的Arraylist值对象
您好,在我的应用程序中,我正在使用它创建JSON字符串。所以我想用GSON。我有两个函数,一个是存储arraylist,另一个是普通对象。我的问题是ArrayList部分工作正常,但当我打印普通对象函数时,ArrayList对象被添加到json部分,这是我的编码 主类Java 使用GSON时添加到JSON的Arraylist值对象,java,android,json,arraylist,gson,Java,Android,Json,Arraylist,Gson,您好,在我的应用程序中,我正在使用它创建JSON字符串。所以我想用GSON。我有两个函数,一个是存储arraylist,另一个是普通对象。我的问题是ArrayList部分工作正常,但当我打印普通对象函数时,ArrayList对象被添加到json部分,这是我的编码 主类 JsonStructure json = new JsonStructure(); json.messages.add("msg 1"); json.messages
JsonStructure json = new JsonStructure();
json.messages.add("msg 1");
json.messages.add("msg 2");
json.messages.add("msg 3");
json.asecs.add("asec 1");
json.asecs.add("asec 2");
json.asecs.add("asec 3");
Gson gson = new Gson();
output = gson.toJson(json);
Log.i("gson", output);
List<JsonStructure> Allergylist = new ArrayList<JsonStructure>();
for (int i = 0; i < 5; i++) {
JsonStructure oAllergy_Data = new JsonStructure();
oAllergy_Data.setIdmember("hi");
oAllergy_Data.setIduser("hello");
// Adding register to list
Allergylist.add(oAllergy_Data);
}
Gson newgson = new Gson();
String newoutput = newgson.toJson(Allergylist);
Log.i("gson new", newoutput);
我的输出应该是这样的
gson(21917): {"asecs":["asec 1","asec 2","asec 3"],"messages":["msg 1","msg 2","msg 3"]}
gson new(21917): [{"asecs":[],"idmember":"hi","iduser":"hello","messages":[]},{"asecs":[],"idmember":"hi","iduser":"hello","messages":[]},{"asecs":[],"idmember":"hi","iduser":"hello","messages":[]},{"asecs":[],"idmember":"hi","iduser":"hello","messages":[]},{"asecs":[],"idmember":"hi","iduser":"hello","messages":[]}]
gson new(21917): [{"idmember":"hi","iduser":"hello"},{"idmember":"hi","iduser":"hello"},{"idmember":"hi","iduser":"hello"},{"idmember":"hi","iduser":"hello"},{"idmember":"hi","iduser":"hello"}]
我的问题是
1) 如果gson将显示类中声明的所有对象,那么为什么idpeople不是display only arraylist将显示在myjson中
2) 如果我需要为Arraylist创建一个单独的对象文件,或者为我的编码创建任何alter编码,无论JsonStructure包含什么,所有这些都将是json的一部分。如果不想将其包含在json中,请将其从类中删除 我个人认为,如果您的json包含任何额外字段,并且该字段对您有用,那么它不会伤害任何人 创建新类-
JsonStructure oAllergy_Data = new JsonStructure();
将允许arraylist成为json的一部分。如果您不希望它包含,请将它与JsonStructure类分开
或者,也可以像这样创建Json-
JSONObject outer = new JSONObject();
try {
// field
outer.put("EMAIL", reqModel.getEmail());
// field
outer.put("PASSWORD", reqModel.getPassword());
} catch (JSONException e) {
//
} catch (Exception e) {
//
}
return outer.toString();
删除此行
ArrayList<String> messages = new ArrayList<String>();
ArrayList<String> asecs = new ArrayList<String>();
ArrayList messages=new ArrayList();
ArrayList asecs=新的ArrayList();
使用
ArrayList消息;
ArrayList asecs;
只有一切都很顺利。你到底有什么问题?这将包含额外的空间(位)用于传输{“asecs”:[],“idmember”:“hi”,“iduser”:“hello”,“messages”:[]}为此创建一个新类。没有其他更改方法。但是idpeople没有显示在json中,为什么只有arraylist显示在这行OAAllergy_数据上;不,我不想显示idpeople。idpeople也是JsonStructure类的一种对象类型。我的问题是,如果gson将显示类中声明的所有对象,那么为什么idpeople不是display only arraylist将显示到我的json中
ArrayList<String> messages = new ArrayList<String>();
ArrayList<String> asecs = new ArrayList<String>();
ArrayList<String> messages ;
ArrayList<String> asecs;