java如何访问JSON对象的名称?
我从Firebase实时数据库返回了这个JSON
{
"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);
请注意,当我得到JSON响应时,我不知道betSlipID的名称,因此我无法创建另一个包含名为传入betSlipID的变量的类
# 1 楼答案
我并不是说这是最优的,但你可以按照这个来完成你的任务,因为你的
betslipid-x
是可变的,我只描述了要遵循的步骤:restTemplate
返回一个json对象,请参见Spring restTemplate get raw json stringkeySet()
键,您将获得所有的密钥BetSlip
类中反序列化,并将该键设置为betSlipID
李>这应该是你的工作
如果您需要进一步澄清,请告诉我
# 2 楼答案
以下是@Noshaf的评论:
创建此HashMap后,现在需要使用betSlipID创建BetSlip类:
现在,betSlip已准备就绪,可以在设置了betSlip属性的情况下使用