Java 如何访问JSON对象的名称?
我从Firebase实时数据库返回了这个JSONJava 如何访问JSON对象的名称?,java,json,spring,firebase,firebase-realtime-database,Java,Json,Spring,Firebase,Firebase Realtime Database,我从Firebase实时数据库返回了这个JSON { "betslipid-4322": { "amount": 100, "bets": [ { "betType": "FT_RESULT_0", "matchid": "ts-fb", "odd": 2.4,
{
"betslipid-4322": {
"amount": 100,
"bets": [
{
"betType": "FT_RESULT_0",
"matchid": "ts-fb",
"odd": 2.4,
"status": "WAITING"
}
],
"status": "WAITING"
},
"betslipid-4323": {
"amount": 7.5,
"bets": [
{
"betType": "FT_RESULT_2",
"matchid": "gs-fb",
"odd": 2.7,
"status": "WAITING"
},
{
"betType": "FT_RESULT_1",
"matchid": "gs-gb",
"odd": 1.3,
"status": "WAITING"
}
],
"status": "WAITING"
}
}
我想把这个JSON的属性(包括开头的属性)放在下面的Java类中
public class BetSlip {
private List<Bet> bets;
private Float amount;
private BetStatus status;
private betSlipID;
}
公共类{
私人名单投注;
私人浮动金额;
私人投注状态;
私人投注;
}
但是,在本例中,我无法访问betslipid,即“betslipid-4322”和“betslipid-4323”,并且我也无法通过以下代码将JSON转换为我的java类
private RestTemplate restTemplate = new RestTemplate();
List<BetSlip> betSlip = restTemplate.getForObject(getDatabaseLink("incomplete-betslips"), ArrayList.class);
private RestTemplate RestTemplate=new RestTemplate();
List betSlip=restemplate.getForObject(getDatabaseLink(“不完整的betSlip”),ArrayList.class);
请注意,当我得到JSON响应时,我不知道betSlipID的名称,因此我无法创建另一个包含名为传入betSlipID的变量的类。以下@Noshaf的注释是解决方案:
HashMap<String,BetSlip> betSlipWithoutID = restTemplate.getForObject(getDatabaseLink("incomplete-betslips"), HashMap.class);
现在,betSlip已准备好与设置的betSlipID属性一起使用。下面是@Noshaf的评论,这里是解决方案:
HashMap<String,BetSlip> betSlipWithoutID = restTemplate.getForObject(getDatabaseLink("incomplete-betslips"), HashMap.class);
我们开始吧,betSlip已准备好与设置了betSlipID属性的betSlipID一起使用。我并不是说这是最佳的,但您可以按照此来完成任务,因为您的
betSlipID-x
是可变的,我仅描述要遵循的步骤:
restTemplate
返回一个json对象,请参见keySet()
获取密钥,您将获得所有的密钥BetSlip
类中反序列化,然后将该键设置为betSlipID
如果您需要进一步澄清,请告诉我。我并不是说这是最佳的,但您可以按照这一点来完成任务,因为您的
x
是可变的,我只描述要遵循的步骤:
restTemplate
返回一个json对象,请参见keySet()
获取密钥,您将获得所有的密钥BetSlip
类中反序列化,然后将该键设置为betSlipID
如果您需要进一步澄清,请告诉我。您可以创建一个包含列表的类。并映射到那个家长身上class@Noshaf我已经试过了,但这并不能帮助我得到betSlipIDslet-give-try-to-HashMap。你可以创建一个包含列表的类。并映射到那个家长身上class@Noshaf我已经试过了,但这并不能帮助我获得betSlipIDslet try to HashMap。谢谢,这几乎就是我解决问题的方法。我接受你的答案,但是那些需要你在这里描述的代码示例的人可以看看我的答案。没错,理论在这里,代码在你的答案中:D!谢谢,这几乎就是我解决问题的方法。我接受你的答案,但是那些需要你在这里描述的代码示例的人可以看看我的答案。没错,理论在这里,代码在你的答案中:D!