使用Gson将JSON数组解析为java.util.List

我有一个JsonObject名为"mapping"包含以下内容:

{

"client": "127.0.0.1",

"servers": [

"8.8.8.8",

"8.8.4.4",

"156.154.70.1",

"156.154.71.1"

]

}

我知道我可以用以下方法获得阵列"servers"

mapping.get("servers").getAsJsonArray()

现在我想将其解析JsonArrayjava.util.List

最简单的方法是什么?

回答:

绝对最简单的方法是使用Gson的默认解析功能fromJson()

此功能的实现适用于需要反序列化为任何ParameterizedType(例如any List)的情况fromJson(JsonElement json, Type typeOfT)

在你的情况下,你只需要获取的Type,List<String>然后将JSON数组解析为that Type,如下所示:

import java.lang.reflect.Type;

import com.google.gson.reflect.TypeToken;

JsonElement yourJson = mapping.get("servers");

Type listType = new TypeToken<List<String>>() {}.getType();

List<String> yourList = new Gson().fromJson(yourJson, listType);

在你的情况下yourJson是a JsonElement,但也可能是a String,any Reader或a JsonReader

以上是 使用Gson将JSON数组解析为java.util.List 的全部内容, 来源链接: utcz.com/qa/423300.html

回到顶部