是否可以反序列化JSON列表,如下所示:
[
{"value": "value1"},
{"value": "value2"}
]
进入Java DTO类,该类将在其中声明该列表,如下所示:
class Model {
private String value;
}
class ModelList {
private List<Model> list;
}
使用Jackson-或可能使用其他框架。
在其他作品中,我需要将JSON列表反序列化为对象而不是对象列表。
感谢帮助!
答案 0 :(得分:0)
这是我曾经用来反序列化类似JSON对象的东西。
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionType;
import java.io.IOException;
import java.util.List;
public interface JsonProcessor {
public static String marshall(Object obj) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
}
public static <T> List<T> unmarshallToList(String json, Class<T> classType)
throws IOException {
ObjectMapper mapper = new ObjectMapper();
CollectionType javaType = mapper.getTypeFactory()
.constructCollectionType(List.class, classType);
return mapper.readValue(json, javaType);
}
}
您可以简单地使用第一种方法将Java对象编组为JSON字符串。
您可以使用的第二种方法。在这里,我使用了Jackson JSON处理器。
对于第一个参数,您应传递JSON字符串,而第二个参数应为Model
。