我有一个相同的json字符串:

{
   k1: v1,
   k2: v2,
   k3: {
     k31:{
        k32:{
          k33:{
             k34: v3
          }
        }
     }
   }
   k4: v4,
   k5: v5,
   k6: v6,
}


我创建了一个对象K = {k1, k2, k3, k4, k5, k6},并且从上述字符串中获取的值应为{v1, v2, v3, v4, v5, v6}

使用Gson,很容易获得v1, v2, v4, v5, v6.
对于v3,如何直接获取它,我不想创建对象包装k33,然后是k32,然后是k31,然后是k3,以获得v3。

我们也无法通过k31, k32, k33, k34来获得v3作为Jsoup
如果@SerializedName结构为@SerializedName(“ k3.k31.k32.k33.k34”)。

请为我展示这种情况的解决方案。

最佳答案

使用Gson,ou可以将k3以及k31至k34视为Json数组。然后,K34是一个Json对象,用于获取k34的值。尝试这个:

String  value = jsonObj.getAsJsonArray("k3").getAsJsonArray("k31")
.getAsJsonArray("k32").getAsJsonArray("k33").getAsJsonObject().get("k34");

关于android - 使用Gson直接在Json中获取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34939278/

10-09 10:04