繁体   English   中英

如何在Android API <26 / Java 7中使用Gson反序列化YearMonth?

[英]How to de-serialize YearMonth with Gson in Android API < 26 / Java 7?

我目前有一个类似的回复:

[
  "2017-12",
  "2018-01",
  "2018-02",
  "2018-03"
]

应该转换为YearMonth 但是由于Android在API 26之前不支持YearMonth ,因此无法在我的应用中使用它。

我不需要YearMonth任何YearMonth功能。 我想要的只是从String反序列化到String 我该如何实现?

我目前正在使用Gson

基本上,您只应该反序列化String[] 请参阅以下测试案例:

@Slf4j
public class YearMonthStringTest {

    public static final String json = 
            "[\n"
            + "  \"2017-12\", \n"
            + "  \"2018-01\", \n"
            + "  \"2018-02\", \n"
            + "  \"2018-03\" \n"
            + "]";

    @Test
    public void fromJsonTest() {
        String[] strs = new Gson().fromJson(json, String[].class);
        Arrays.asList(strs).forEach(str -> {
            log.info("{}", str);
        });
    }

    @Test
    public void toJsonTest() {
        String[] str = new String[] { "2001-01", "1984-02"
                                    , "1878-11", "0000-12" };
        String jsonFromArray = new GsonBuilder()
                .setPrettyPrinting().create().toJson(str);
        log.info("json from array:\n{}", jsonFromArray);
    }

}

YearMonthJava 8中引入的,因此,这通常是Java 7问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM