我尝试使用gson构建JsonObject的JsonArray。每个JsonObject将采用以下格式,
{"image":"name1"}
{"image":"name2"}
和/或其他信息。
我有一个名称的字符串数组(“name 1”,“name 2”,...),我无法将字符串数组直接转换为JsonArray。我正在尝试迭代地创建JsonObject,并将其添加到JsonArray。
JsonObject innerObject;
JsonArray jArray = new JsonArray();
for(int i = 0; i<names.length; i++)
{
innerObject = new JsonObject();
innerObject.addProperty("image",names[i]);
jArray.add(innerObject);
}
但据我所知,JsonArray中的add
方法接受一个JsonElement,而这里我给出了一个JsonObject。我找不到一种方法将JsonObject转换为JsonElement。当我这样做时,使用gson的全部意义都将消失。有更好的方法吗?
3条答案
按热度按时间vfhzx4xs1#
首先,创建一个类,它表示一个单独的json对象,例如:
Gson将使用类的变量名来确定要使用的属性名。
然后使用您现有的数据创建一个数组或列表,例如:
最后,要序列化为Json,请执行以下操作:
要将数据从
json
返回到数组,请执行以下操作:对于简单的序列化(反序列化),不需要直接处理Json类。
qoefvg9y2#
如果您要使用GSON,请按如下方式将其转换为对象
获取json字符串
这就是gson的要点,你不应该用循环和其他东西来操纵数据,你需要利用它强大的模型解析。
bvjxkvbb3#
也许太晚了,但是...如果你不需要创建一个新类,有一种方法可以做到: