java - 在 Java 中解析 json 字符串的特定元素
问题描述
我正在尝试将 json 字符串中的坐标解析到Location
程序中的类中。我已经将 json 文件读入字符串变量coords
。问题是字符串包含多个坐标,但我只需要importantPlace
lat
and不需要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
lat
和lng
坐标来制作一个新Location
对象?
解决方案
我认为您应该制作一个完整的模型来将整个 String 解析为 java 类。您还可以尝试修剪字符串,以便只留下“重要”部分,然后您可以使用 fromGson() 方法对其进行解析。
推荐阅读
- angular - 使用 rxjs 运算符成功后发送副作用 http 请求
- amazon-web-services - 在 Terraform 中覆盖模块的 local.tf 变量
- reactjs - UserContext 显示未定义
- angular - 表单域的条件显示 Ionic Angular
- flutter - Flutter ListView 边界飞溅颜色
- c# - 无法从控制器传递列表以查看
- regex - Perl 和 Ruby 中的多行模式不同:Ruby 错了吗?
- syntax - verilog 中的操作数
- oracle-sqldeveloper - 如何使用另一个表中的数据从一个表中获取某个值的平均值
- ansible - 从 Ansible 事实中删除双引号