2016-12-28 115 views
0

我到處搜索,無法找到如何做到這一點,我超級卡住了。我沒有使用JSON文件的經驗,所以勺子餵食與解釋一起讚賞。使用gson從JsonArray中獲取價值

我在這裏有這個JSON文本來進行測試:

{ 
     "id":"4566e69fc90748ee8d71d7ba5aa00d20", 
     "properties": 
        [ 
        { 
         "name":"textures", 
         "value":"eyJ0aW1lc3RhbXAiOjE0ODI4ODAxNDMwNzYsInByb2ZpbGVJZCI6IjQ1NjZlNjlmYzkwNzQ4ZWU4ZDcxZDdiYTVhYTAwZDIwIiwicHJvZmlsZU5hbWUiOiJUaGlua29mZGVhdGgiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTNlODFiOWUxOWFiMWVmMTdhOTBjMGFhNGUxMDg1ZmMxM2NkNDdjZWQ1YTdhMWE0OTI4MDNiMzU2MWU0YTE1YiJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJiOWM1ZWE3NjNjODZmYzVjYWVhMzNkODJiMGZhNjVhN2MyMjhmZDMyMWJhNTQ3NjZlYTk1YTNkMGI5NzkzIn19fQ==", 
        }, 
        ], 
     "name":"Thinkofdeath", 
    } 

目前,我有這樣的:

JsonElement playerProfile = new JsonParser().parse(jsonLine); 
    JsonObject jsonProfile = playerProfile.getAsJsonObject(); 
    JsonArray properties = jsonProfile.getAsJsonArray("properties"); 

它返回 [

[ 
    { 
    "name":"textures", 
    "value":"eyJ0aW1lc3RhbXAiOjE0ODI4ODAxNDMwNzYsInByb2ZpbGVJZCI6IjQ1NjZlNjlmYzkwNzQ4ZWU4ZDcxZDdiYTVhYTAwZDIwIiwicHJvZmlsZU5hbWUiOiJUaGlua29mZGVhdGgiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTNlODFiOWUxOWFiMWVmMTdhOTBjMGFhNGUxMDg1ZmMxM2NkNDdjZWQ1YTdhMWE0OTI4MDNiMzU2MWU0YTE1YiJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJiOWM1ZWE3NjNjODZmYzVjYWVhMzNkODJiMGZhNjVhN2MyMjhmZDMyMWJhNTQ3NjZlYTk1YTNkMGI5NzkzIn19fQ==", 
    }, 
] 

當然。我如何從這個JsonArray中獲得「價值」?請注意我使用谷歌的API,GSON

+0

至於我,平時我的jsons型向POJO - 但你總是[把它作爲一個JsonElement] (https://github.com/google/gson/blob/master/gson/src/main/java/com/google/gson/JsonArray.java#L182),然後[作爲json對象](https:// github.com/google/gson/blob/master/gson/src/main/java/com/google/gson/JsonElement.java#L86),最後[get(「value」)](https://github.com) /google/gson/blob/master/gson/src/main/java/com/google/gson/JsonObject.java#L169)獲取'value'作爲(可悲的)JsonElement ..這是非常迂迴,但當然,我'd建議你讓pojo .. –

+0

我感謝你的幫助,但就像我說的,我對這個JSON事物完全陌生,有點需要一個小勺餵養:P –

回答

3

可以使用得到values

JsonObject propertiesJson = properties.get(0); 
String value = propertiesJson.getString("value"); 
+0

啊哈!它的工作原理,只是它不是「getString」它的「get(」value「)。toString」 –

+1

@SageM如果您使用Json庫比嘗試使用它的方法更好的方便。獲取值爲:propertiesJson.get(「value」)。getAsString(); – Darshit