【问题标题】:How to parse Java object using Gson and get values of each element?如何使用 Gson 解析 Java 对象并获取每个元素的值?
【发布时间】:2017-02-20 14:57:14
【问题描述】:
title = u.getOrganizations();
Gson gson = new Gson();
String jsonItems = gson.toJson(title);  
System.out.println(jsonItems);
if(jsonItems.length() >0 && !jsonItems.equalsIgnoreCase(null)){
    JSONArray jObj = new JSONArray(jsonItems);
    System.out.println(jObj.toString());
}

电流输出:

[{"name":"ABCD","title":"Test Specialist","primary":true,"customType":"Work"}]

预期输出:

name: ABCD
title: Test Specialist
primary: true
customType: Work

这对我来说是新的,尝试过的在线资源无法得到我想要的,非常感谢您的帮助..谢谢!

【问题讨论】:

  • jObj的内容打印有问题吗??
  • 正确输出 jObj 并处理空数据,但我很难从该对象中仅获取标题。

标签: java arrays json parsing gson


【解决方案1】:

您的 json 字符串是一个包含一个元素的数组

String jsonString = 你的 json

            JsonArray jsonArray= new JsonParser().parse(jsonString).getAsJsonArray();
            JsonObject jsonObject = (JsonObject) jsonArray.get(0);
            System.out.println("title :"+jsonObject.get("title"));

等等……

【讨论】:

    【解决方案2】:

    我也使用过相同的方法,但对于列表,我不知道它是否也能正常工作。使用列表,您有对象列表,我创建列表,创建对象并将其添加到列表中,最后 gson.toJson(listaObjects) 将其转换为 Json。为了解析它,我只做

    Gson gson = new Gson();
        Type type = new TypeToken<List<ProvinciaDTO>>() {
        }.getType();
    objectsList= new Gson().fromJson(listaJSonString, type);
    
    //foreach of objectsList
    

    在您的情况下,对于数组: 否决票 公认 您的 json 字符串是一个包含一个元素的数组

     JsonArray jsonArray= new          JsonParser().parse(jsonString).getAsJsonArray();
    JsonObject jsonObject = (JsonObject) jsonArray.get(0);
    System.out.println("title :"+jsonObject.get("title"));
    

    【讨论】:

      猜你喜欢
      • 2014-04-23
      • 2012-04-03
      • 1970-01-01
      • 2017-12-11
      • 2012-08-03
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多