在Java中使用GSON解析JSON,并使用具有非重复值的多个根键

在Java中使用GSON解析JSON,并使用具有非重复值的多个根键,java,json,gson,Java,Json,Gson,我能够使用GSON解析以下JSON { "AMZN": { "fundamental": { "symbol": "AMZN" }, "symbol": "AMZN", "description": "Amazon.com, Inc. - Common Stock", } } 我创建了

我能够使用GSON解析以下JSON

{
  "AMZN": {
    "fundamental": {
      "symbol": "AMZN"
    },
    "symbol": "AMZN",
    "description": "Amazon.com, Inc. - Common Stock",
  }
}
我创建了以下类来读取这些数据:

basical.java

public class Fundamental {
    
    private String symbol;
    
}
Instrument.java

public class Instrument{

    private Fundamental fundamental;
    private String description;
    private String symbol;
}
已使用以下命令成功读取数据:

int startIndex = sb.indexOf("{", 1);
String json = sb.substring(startIndex, sb.length() - 1).strip();
instrument = new Gson().fromJson(json, Instrument.class);
我遇到的问题是当符号重复时读取JSON。示例如下:

{
  "AAPL": {
    "fundamental": {
      "symbol": "AAPL"
    },
    "symbol": "AAPL",
    "description": "Apple Inc. - Common Stock"
  },
  "AMZN": {
    "fundamental": {
      "symbol": "AMZN"
    },
    "symbol": "AMZN",
    "description": "Amazon.com, Inc. - Common Stock"
  }
}
我试着把它读成一种类型,但不起作用

有什么建议吗


谢谢

你的
Cusip
课程看起来怎么样?您可以通过解析为
Map
来解决这个问题(如果工具名,例如“AAPL”和“AMZN”,那么:
gson.fromJson(json,new-TypeToken(){}.getType())
对不起,Cusip.class是错的,应该说Instrument.class.我们能指望
basical.symbol
symbol
相同吗?是的。basical.symbol将始终与symbol相同。但是使用
gson.fromJson(json,new-TypeToken(){}.getType())
对您有用吗?为什么要从JSON中删除
{
}