public class People implements Serializable{ private Long id; private String name; private Integer age; public People() { } public People(Long id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "People{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; } }
public class A<E,F>{ private E e; private F f; public F getF() { return f; } public void setF(F f) { this.f = f; } public E getE() { return e; } public void setE(E e) { this.e = e; } }
public class JsonTest { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); // create once, reuse mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) .configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); TypeFactory typeFactory = mapper.getTypeFactory(); //json to pojo String jsonSource = "{id:1,name:'liyuan',age:20}"; People people = mapper.readValue(jsonSource, People.class); //recommend people = mapper.readValue(jsonSource,new TypeReference<People>(){}); people = mapper.readValue(jsonSource, typeFactory.constructType((People.class))); //json to map Map<String,Object> map = mapper.readValue(jsonSource,new TypeReference<HashMap<String,Object>>(){}); //recommend System.out.println(mapper.writeValueAsString(map)); map = mapper.readValue(jsonSource, typeFactory.constructMapType(HashMap.class, String.class, Object.class)); System.out.println(mapper.writeValueAsString(map)); //json to node JsonNode root = mapper.readTree(jsonSource); System.out.println(root.get("id").asLong()); System.out.println(root.get("name").asText()); //json to array jsonSource = "[{id:1,name:'liyuan',age:20},{id:2,name:'xiaoming',age:15}]"; People[] arr = mapper.readValue(jsonSource, new TypeReference<People[]>(){}); System.out.println(mapper.writeValueAsString(arr)); arr = mapper.readValue(jsonSource, typeFactory.constructArrayType(People.class)); System.out.println(mapper.writeValueAsString(arr)); //json to list List<People> list = mapper.readValue(jsonSource, new TypeReference<List<People>>(){}); System.out.println(mapper.writeValueAsString(list)); list = mapper.readValue(jsonSource, typeFactory.constructCollectionType(ArrayList.class,People.class)); System.out.println(mapper.writeValueAsString(list)); //json to generic jsonSource = "{e:{id:1,name:'liyuan',age:20},f:{id:2,name:'xiaoming',age:15}}"; A<People,People> generic = mapper.readValue(jsonSource, new TypeReference<A<People,People>>(){}); System.out.println(mapper.writeValueAsString(generic)); generic = mapper.readValue(jsonSource, typeFactory.constructParametricType(A.class,People.class,People.class)); System.out.println(mapper.writeValueAsString(generic)); } }
相关推荐
JackJSON则是Java中的一款库,它提供了JSON的生成和解析功能,使得开发者能够方便地处理JSON数据。本压缩包“jackJSON生成与解析JSON数据相关jar包.rar”包含了在Java项目中使用JackJSON所需的库文件。 首先,...
Jackson 是一个流行的 Java 库,用于将 JSON 数据转换为 Java 对象或 Map。在使用 Jackson 将 JSON 转换为 Map 的过程中,可能会遇到科学计数法的问题。该问题的出现是因为 JSON 中的数值类型太多,在转换过程中可能...
String jsonString = gson.toJson(yourJavaObject); // 将JSON字符串转换为Java对象 YourJavaClass yourObject = gson.fromJson(jsonString, YourJavaClass.class); ``` 在实际应用中,我们通常需要根据项目需求...
在Java中,处理JSON有多个流行的库,包括Gson、FastJson和JackJson。这些库提供了方便的方法来序列化Java对象为JSON字符串,以及反序列化JSON字符串回Java对象。 1. Gson Gson是Google提供的一个开源库,它能够将...
据文档描述,FastJson在性能测试中超越了其他Java JSON解析库,包括声称为最快的JackJson。它支持JavaBean、集合、Map、日期和枚举类型,同时支持泛型和自省机制。FastJson不依赖于任何第三方库,可直接在Java SE ...