【发布时间】:2017-03-29 19:20:34
【问题描述】:
我有一个带有值的字符串折扣:
"[{\"startInterval\":0,\"endInterval\":3,\"discount\":1000.0},
{\"startInterval\":3,\"endInterval\":6,\"discount\":750.0},
{\"startInterval\":6,\"endInterval\":9,\"discount\":500.0},
{\"startInterval\":9,\"endInterval\":12,\"discount\":10.0}]"
我的折扣类有模型:
public class Discount {
private int startInterval;
private int endInterval;
private double discount;
public Discount() {
}
public int getStartInterval() {
return startInterval;
}
public void setStartInterval(int startInterval) {
this.startInterval = startInterval;
}
public int getEndInterval() {
return endInterval;
}
public void setEndInterval(int endInterval) {
this.endInterval = endInterval;
}
public Double getDiscount() {
return discount;
}
public void setDiscount(Double discount) {
this.discount = discount;
}
}
我想将字符串序列化为List<Discount>。我怎么做?我尝试将字符串转换为JSONArray(gson 和 json),但出现了一些错误。
注意:
[{"startInterval":0,"endInterval":3,"discount":1000.0},
{"startInterval":3,"endInterval":6,"discount":750.0},
{"startInterval":6,"endInterval":9,"discount":500.0},
{"startInterval":9,"endInterval":12,"discount":10.0}]
存储在 mysql 数据库中。我将其提取到字符串折扣中,然后尝试对其进行序列化。
【问题讨论】:
-
用 GSON 序列化一个对象非常简单,你试过these methods 吗?还有this一个?
-
看看jackson 2 JSON to Java Object...
-
@Oneiros 这些链接序列化单个 json 元素。我需要的是序列化为 List
List rateList = mapper.readValue(disounts,TypeFactory.defaultInstance().constructCollectionType(List.class, Discount.class));这也无济于事 -
@Plirkee 试过这个列表
dicountList = mapper.readValue(disounts,TypeFactory.defaultInstance().constructCollectionType(List.class, Discount.class));这将调用 Discount 类的构造函数,参数为折扣字符串。该字符串包含整个数组。如果它是单个元素,它可能已经被序列化了 -
看我提供的第二个链接,使用了对象列表。 GSON 自动处理 Java 集合。我在这里错过了什么吗?