首页 > 解决方案 > 在 Java 中解析 json 字符串的特定元素

问题描述

我正在尝试将 json 字符串中的坐标解析到Location程序中的类中。我已经将 json 文件读入字符串变量coords。问题是字符串包含多个坐标,但我只需要importantPlace latand不需要lng其他坐标或信息,但我不知道如何只使用 json 字符串的这些部分来制作新Location对象。

Location班级:

public class Location {

    public double lat;
    public double lng;

    public Location(double lat, double lng) {
        this.lat = lat;
        this.lng = lng;
    }
}

这是coords包含的内容:

{
  "country": "US",
  "square": {
    "northeast": {
      "lng": 5.18232,
      "lat": 42.91431
    }
    "southwest": {
      "lng": 5.18240,
      "lat": 42.91422
    },
  },
  "importantPlace": "Building",
  "coordinates": {
    "lng": 5.18234,
    "lat": 42.91427
  },
  "words": "trades.rare.cable",
  "map": "https://w3w.co/trades.rare.cable"
}

我知道要解析我可以使用的所有内容:

public Location parseCoords(String coords) {
    Location pos = new Gson().fromJson(coords, Location.class);
    return pos; 

但这不起作用,因为 json 字符串具有多个Location类没有的坐标和参数。

有没有办法只使用importantPlace latlng坐标来制作一个新Location对象?

标签: javajsonparsing

解决方案


我认为您应该制作一个完整的模型来将整个 String 解析为 java 类。您还可以尝试修剪字符串,以便只留下“重要”部分,然后您可以使用 fromGson() 方法对其进行解析。


推荐阅读