从JSON获取信息时遇到一些问题。我对于是否使用ArrayList或任何其他数据类型从JSON服务器检索数据感到困惑。
我尝试使用
获取数据ArrayList<String>
在模型中。
下面是JSON的数据格式
[
{
"sun_timing": "{\"sun_from\":\"12:30\",\"sun_to\":\"4:30\"}",
"mon_timing": "{\"mon_from\":\"3:00\",\"mon_to\":\"4:30\"}"
},
{
"sun_timing": "{\"sun_from\":\"12:30\",\"sun_to\":\"4:30\"}",
"mon_timing": "{\"mon_from\":\"3:00\",\"mon_to\":\"4:30\"}"
}
]
我想获取所有sun_timing数据和mon_timing数据。
这是sun_from,sun_to和mon_from,mon_to数据。
答案 0 :(得分:0)
尝试为我工作
private static Collector<Transaction, ?, List<Transaction>> limit(int limit) {
return Collector.of(
ArrayList::new,
(list, transaction) -> { if (list.size() < limit) list.add(transaction); },
(list1, list2) -> {
list1.addAll(list2.subList(0, Math.min(list2.size(), Math.max(0, limit - list1.size()))));
return list1;
}
);
}
public static void main(String[] args) {
Map<String, List<Transaction>> groupedMap = listOfTransactions
.stream()
.sorted((t1, t2) -> Integer.compare(t2.getQuantity(), t1.getQuantity()))
.collect(
Collectors.groupingBy(
Transaction::getShopId,
limit(100)
)
);
}
答案 1 :(得分:0)
您的 json 的原始Java对象(POJO)看起来像这样:
public class Example {
@SerializedName("sun_timing")
@Expose
private String sunTiming;
@SerializedName("mon_timing")
@Expose
private String monTiming;
public String getSunTiming() {
return sunTiming;
}
public void setSunTiming(String sunTiming) {
this.sunTiming = sunTiming;
}
public String getMonTiming() {
return monTiming;
}
public void setMonTiming(String monTiming) {
this.monTiming = monTiming;
}
}
另请参见:https://stackoverflow.com/a/40973753/10452701,以获取有关如何通过Rerofit2获取json的更多详细信息。