我当前有一个响应:
[
"2017-12",
"2018-01",
"2018-02",
"2018-03"
]
应该转换为YearMonth
。但是由于Android在API 26之前不支持YearMonth
,所以我不能在我的应用中使用它。
我不需要YearMonth
具有的任何精美功能。我想要的只是从/到 String
de/serialize的能力。我该如何实现?
我目前正在使用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);
}
}
YearMonth
是在Java 8
中引入的,因此这是Java 7
问题。