在Java中使用GSON解析JSON,并使用具有非重复值的多个根键
我能够使用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", } } 我创建了
{
"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中删除{
和}
?