我想用这个方法:
json.add("myText", getList(id));
函数getList(id)返回一个数组列表,但是方法json.add会喜欢一个JsonElement。
那么,如何在JsonElement中转换数组列表呢?
我对此进行了测试,但它不起作用:
json.add("myText", (JsonElement)getList(id));
我也测试一下:
JsonElement =新建的JsonElement(){
private ArrayList<String> list= new ArrayList<String>();
public ArrayList<String> getList(){
return this.list;
}
};
4条答案
按热度按时间e37o9pze1#
gson提供了序列化ArrayList(或任何集合)的方法。
请参阅https://sites.google.com/site/gson/gson-user-guide#TOC-Array-Examples
dgtucam12#
要从
List
中得到JsonElement
,可以使用JsonTree
:mwg9r5ms3#
你不能转换它,我也看不出用API方法转换它的方法。我认为你需要创建自己的方法来将列表转换为数组。
例如:
那就这样叫吧:
或者,如果您可以访问
getList
方法,则可以将其更改为返回JsonElementsd2nnvve4#
我觉得我们需要退一步来理解你想做什么。
我假设您希望在“myText”和其他对象的数组之间创建一个Map。
为此,您只需调用Gson.toJson(map),其中map保存键myText和作为列表或数组的值。换句话说:
如果这不是你想要的,我恳求你解释一下你的目标,这样我们就可以帮助你以Gson支持的方式来做,而不是你想要的方式。