使用Retrofit从JSON获取计时信息

时间:2019-07-04 05:09:58

标签: java android arrays json retrofit

从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数据。

2 个答案:

答案 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对象(PO​​JO)看起来像这样:

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的更多详细信息