2016-12-28 178 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