簡體   English   中英

使用GSON將嵌套的JSON解析為通用集合

[英]Parse nested JSON as generic collection with GSON

我的json對象以一個對象開頭,然后包含我想要的對象數組{ "myObjectArray":[ {....} , {....} , {....} ] }{....}表示的對象的模型文件,如何獲取此通用集合代碼以不假設我的根元素是數組而不創建新的嵌套對象文件

這就是我目前擁有的

 Type listType = new TypeToken<List<T>>() {
                }.getType();
 List<T> yourClassList = new Gson().fromJson(jsonArray, listType);

但這是假設我的json對象是像[{....}, {....}, {....}]這樣構造的[{....}, {....}, {....}]而不是我上面詳述的方式

因此,解析將返回JsonSyntaxException

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2

在不創建包含一個變量"myObjectArray" (包含一個myObject列表)的無意義模型對象的情況下,如何修改GSON構建器以使其適應?

(我使用的是android,所以不能使用很多Oracle JVM反射方法,包括ParameterizedTypeImpl

運用

GsonBuilder builder = new GsonBuilder(); 
mGson = builder.enableComplexMapKeySerialization().create();
listType = new TypeToken<Map<String, List<T>>>() {}.getType();
parsedGSON = mGson.fromJson(reader, listType); 

就是答案

GSON創建一個LinkedTreeMap對象

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM