![](/img/trans.png)
[英]Firebase Rest Api reading data from my model classes using interface callback return null
[英]Null values after reading data from rest API
Have similar problem to this but i couldnt work this out Getting null values when reading in JSON file in eclipse using java I'm having problem while reading data from this https://runsignup.com/Rest/races?format=json&country=US
Gson gson = new GsonBuilder().setPrettyPrinting().create();
final String racesUri = "https://runsignup.com/Rest/races?format=json&country=US";
HttpResponse<String> response = HttpClient
.newBuilder()
.proxy(ProxySelector.getDefault())
.build()
.send(Request.requestGet(racesUri), HttpResponse.BodyHandlers.ofString());
RaceList races = gson.fromJson(response.body(), RaceList.class);
System.out.println(response.body());
System.out.println(races);
我只想得到“race_id”和“name” Race class 看起来像这样:
package stefanowicz.kacper.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Race {
private long race_id;
private String name;
}
响应体非常好,但是当我尝试将其转换为 RaceList object 时,如下所示:
package stefanowicz.kacper.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class RaceList {
private List<Race> races;
}
每个 Race 的“race_id”等于 0,“name”为 null。
RaceList(races=[Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race (race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name =null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race( race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name= null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id =0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null) ), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id= 0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race (race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name =null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race( race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=null), Race(race_id=0, name=空),种族(race_id=0,名称=空)])
我认为你的课程应该是这样的:
public class RaceList {
private List<Race> races;
}
public class Race {
private RaceData race;
}
public class RaceData {
private long race_id;
private String name;
/* ... */
}
如果races
是保存RaceList
object 的变量的名称,那么第一场比赛的名称应该以races.getRaces().get(0).getRace().getName()
的形式访问。
谢谢大家,您的回答使我找到了最好的解决方案,我希望如此:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class RaceList {
private List<Map<String, Race>> races;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.