Q
如何使用杰克逊
73
A
回答
118
我终于明白了:
ObjectMapper objectMapper = new ObjectMapper();
TypeFactory typeFactory = objectMapper.getTypeFactory();
List<SomeClass> someClassList = objectMapper.readValue(jsonString, typeFactory.constructCollectionType(List.class, SomeClass.class));
68
对方回答是正确的,但为了完整性,这里有其他的方法:
List<SomeClass> list = mapper.readValue(jsonString, new TypeReference<List<SomeClass>>() { });
SomeClass[] array = mapper.readValue(jsonString, SomeClass[].class);
3
完整的例子使用数组。 替换 “constructArrayType()”,由 “constructCollectionType()” 或其它任何你需要的类型。
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.TypeFactory;
public class Sorting {
private String property;
private String direction;
public Sorting() {
}
public Sorting(String property, String direction) {
this.property = property;
this.direction = direction;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public String getDirection() {
return direction;
}
public void setDirection(String direction) {
this.direction = direction;
}
public static void main(String[] args) throws JsonParseException, IOException {
final String json = "[{\"property\":\"title1\", \"direction\":\"ASC\"}, {\"property\":\"title2\", \"direction\":\"DESC\"}]";
ObjectMapper mapper = new ObjectMapper();
Sorting[] sortings = mapper.readValue(json, TypeFactory.defaultInstance().constructArrayType(Sorting.class));
System.out.println(sortings);
}
}
相关问题
- 1. 如何使用杰克逊
- 2. 如何使用杰克逊
- 3. 使用杰克逊
- 4. 杰克逊2.0杰克逊1.x的
- 5. 如何使用杰克逊映射
- 6. 如何使用杰克逊得到JsonProcessingException
- 7. 阅读使用杰克逊
- 8. 无法使用杰克逊
- 9. 如何与杰克逊
- 10. 杰克逊UnrecognizedPropertyException
- 11. 杰克逊JsonSerializer
- 12. 杰克逊写
- 13. 杰克逊Deserialising:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
- 14. 与杰克逊
- 15. 杰克逊arraynode
- 16. 与杰克逊
- 17. Java类杰克逊
- 18. NotSerializableException杰克逊ObjectNode
- 19. 杰克逊 - 变键
- 20. 杰克逊禁用fail_on_empty_beans
- 21. 配置杰克逊使用杰克逊的数据类型,休眠
- 22. 什么是用于使用杰克逊
- 23. 使用@RolesAllowed用的RESTEasy和杰克逊
- 24. 的Restlet和杰克逊:java.lang.NoClassDefFoundError:组织/ Codehaus的/杰克逊/ JsonFactory
- 25. 杰克逊流媒体API vs杰克逊映射器
- 26. 尝试使用杰克逊流API
- 27. 使用杰克逊1.9时的OutOfMemory
- 28. 阅读部分使用杰克逊
- 29. 错误使用杰克逊和Json
- 30. 杰克逊json @JsonIgnore使用扩展类?
我有类似的情况,但决定将它解序列化为JSONArray对象,而不是将它转换为类,因为它将避免将来出现类序列化问题。我有什么好处吗? – Arun