当前位置: 首页 > 面试题库 >

没有很多类的GSON解析

金珂
2023-03-14
问题内容

我有以下的JSON,我只有在获得元素感兴趣"status""lat""lng"

使用 Gson ,可以解析此JSON以获取那些值,而无需创建表示JSON内容的整个类结构吗?

JSON:

{
  "result": {
    "geometry": {
      "location": {
        "lat": 45.80355369999999,
        "lng": 15.9363229
      }
    }
  },
  "status": "OK"
}

问题答案:

您无需定义任何新类,只需使用Gson库随附的JSON对象即可。这是一个简单的例子:

JsonParser parser = new JsonParser();
JsonObject rootObj = parser.parse(json).getAsJsonObject();
JsonObject locObj = rootObj.getAsJsonObject("result")
    .getAsJsonObject("geometry").getAsJsonObject("location");

String status = rootObj.get("status").getAsString();
String lat = locObj.get("lat").getAsString();
String lng = locObj.get("lng").getAsString();

System.out.printf("Status: %s, Latitude: %s, Longitude: %s\n", status,
        lat, lng);

干净利落。如果发现自己一遍又一遍地重复相同的代码,则可以创建类来简化映射并消除重复。



 类似资料:
  • 我有一个Post实体,它有一个TestAttribute类型属性,其代码如下: 我尝试在传递一个RawSql(其中我还获得了其他属性)之后获取属性testAttribute,如下代码所示 我的问题是,当我使用Ebean返回查询结果时。json()。tojson(),则不会返回TestAttribute属性。这是返回的结果: 注意,当我使用json时。toJson()返回结果,但返回的实体属性可以使

  • 我有一个json看起来像这样: 如您所见,loc对象有时是json对象,有时是双数组。在不编写自定义反序列化程序的情况下,有没有办法避免,并在loc对象是json对象而不是双数组时将其设置为null。

  • 问题内容: 如何使用Gson解析此JSON?我有一个具有多个对象类型的数组,但我不知道需要创建哪种对象来保存此结构。我无法更改json消息(我无法控制服务器)。 唯一起作用的类是 JSON消息 (请注意具有多个对象类型的数组。) 问题答案: 《 Gson用户指南》明确涵盖了以下内容: https://sites.google.com/site/gson/gson-user-guide#TOC-Se

  • 问题内容: 我正在尝试将2.5GB的txt文件读入我的应用程序。我正在运行Win7 x64,并且有43GB的可用内存(64GB中的可用空间)。我尝试使用-Xmx -XX:MaxParmSize -XX:ParmSize等。这些都不影响错误。我还能尝试什么?因为我当然有足够的可用堆空间,所以这个错误似乎很奇怪。 我在跑步 非常感谢。 =============答案============== 好,我

  • 我在mongostat的输出中看到了巨大的每秒(约200次)故障数,尽管锁率非常低: 我的Mongo服务器运行在Amazon云上的m1.large实例上,因此它们每个都有7.5GB的RAM:: 显然,我没有足够的内存来满足cahing mongo想要做的所有事情(顺便说一句,由于磁盘IO,这会导致巨大的CPU使用率%)。 我发现这篇文档表明,在我的场景中(高故障、低锁定%),我需要“扩展读取”和“

  • 问题内容: 我试图弄清楚More like this query(ES 2.X)的工作原理。我用术语向量创建了以下索引。 为什么以下查询没有返回结果?在第二个查询中,我希望至少检索doc 3,其值与doc 1相同。 问题答案: 默认情况下为5,因此您的查询不起作用,因为您的索引中至少包含5个属性为黄色的文档。因此,在查询中设置为1,它应该可以工作。