一.简介
Jackson ObjectMapper可以从字符串、流或文件解析JSON,并创建Java对象或对象图来表示已解析的JSON。将JSON解析为Java对象也称为从JSON反序列化Java对象
Jackson ObjectMapper也可以从Java对象创建JSON. 从Java对象生成JSON的过程也被称为序列化Java对象到JSON
二.依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.6</version>
</dependency>
三.从 JSON 字符串读取 Java 对象
从JSON字符串读取Java对象,方法:ObjectMapper.readValue()。
public class Car {
private String brand = null;
private int doors = 0;
public String getBrand() { return this.brand; }
public void setBrand(String brand){ this.brand = brand;}
public int getDoors() { return this.doors; }
public void setDoors (int doors) { this.doors = doors; }
}
ObjectMapper objectMapper = new ObjectMapper();
String carJson = "{ \"brand\" : \"Mercedes\", \"doors\" : 5 }";
Car car = objectMapper.readValue(carJson, Car.class);
System.out.println("car brand = " + car.getBrand());
System.out.println("car doors = " + car.getDoors());
四.从 JSON Reader 对象读取 Java 对象
可以通过Reader实例从JSON中读取一个Java对象。
ObjectMapper objectMapper = new ObjectMapper();
String carJson = "{ \"brand\" : \"Mercedes\", \"doors\" : 4 }";
Reader reader = new StringReader(carJson);
Car car = objectMapper.readValue(reader, Car.class);
五.从 JSON 文件读取 Java 对象
可以通过FileReader实例从JSON中读取(替换上例中的StringReader即可), 当然, 也可以直接使用File对象。
ObjectMapper objectMapper = new ObjectMapper();
File file = new File("data/car.json");
Car car = objectMapper.readValue(file, Car.class);
六.从 URL 获取 JSON 数据读取 Java 对象
可以通过URL(java.net.URL)获取JSON数据后读取Java对象。
ObjectMapper objectMapper = new ObjectMapper();
URL url = new URL("file:data/car.json");
Car car = objectMapper.readValue(url, Car.class);
可以使用HTTP URL
七.从 Java InputStream 获取 JSON 数据读取 Java 对象
ObjectMapper objectMapper = new ObjectMapper();
InputStream input = new FileInputStream("data/car.json");
Car car = objectMapper.readValue(input, Car.class);
八.从字节数组获取 JSON 数据读取 Java 对象
ObjectMapper objectMapper = new ObjectMapper();
String carJson = "{ \"brand\" : \"Mercedes\", \"doors\" : 5 }";
byte[] bytes = carJson.getBytes("UTF-8");
Car car = objectMapper.readValue(bytes, Car.class);
九.从 JSON 数组字符串读取 Java 对象数组
ObjectMapper也可以从JSON数组字符串中读取一组Java对象。
String jsonArray = "[{\"brand\":\"ford\"}, {\"brand\":\"Fiat\"}]";
ObjectMapper objectMapper = new ObjectMapper();
Car[] cars2 = objectMapper.readValue(jsonArray, Car[].class);
《肖申克的救赎》
生命可以归结为一种简单的选择:要么忙于生存,要么赶着去死。
懦怯囚禁人的灵魂,希望可以感受自由。强者自救,圣者渡人。
希望是件美丽的东西,也许是最好的东西。美好的东西是永远不会死的。
每个人都是自己的上帝。如果你自己都放弃自己了,还有谁会救你?
《熔炉》
我们一路奋战,不是为了能改变世界,而是为了不让世界改变我们。
现实如水母,看似美好无害实质总是致命伤人。
我们来到世界上,都是孤独的旅行,即使身边有人相伴,最终也会各奔东西!
世界上最美丽最珍贵的,反而是听不见且看不清的,只有用心才能感受得到。
《教父》
人可以不断犯错,但绝不能犯要命的错。
不要憎恨你的敌人,那会影响你的判断力。
人并非生来就伟大,而是越活越伟大。
《活着》
人是为了活着本身而活着,而不是为了活着之外的任何事物而活着。
以笑的方式哭,在死亡的伴随下活着。
没有什么比时间更具有说服力了,因为时间无需通知我们就可以改变一切。
你的命是爹娘给的,你不要命了也得先去问问他们。
《我不是药神》
世界上只有一种病,穷病,这种病你没法治,你也治不过来。
人间最高贵的是善良,是对生命的致敬。
《指环王》
把手握紧,里面什么也没有;把手放开,你得到的是一切。
我宁愿和你共度凡人短暂的一生,也不愿一个人看尽这世界的沧海桑田。
20.幸福的家庭都是相似的,不幸的家庭各有各的不幸。
或许有一天,人类变得萎缩懦弱,舍弃朋友,断绝友谊,但今天决不会这样。
《饮食男女》
22.人生不能像做菜,把所有的材料都准备好了才下锅。
什么叫做“可惜”啊,要心中有个“惜”字儿,才知道可惜。
其实一家人,住在一个屋檐下,照样可以各过各的日子,可是从心里产生的那种顾忌,才是一个家之所以为家的意义。
《让子弹飞》
世界上本没有路,有了腿便有了路。
如果你活着,早晚都会死;如果你死了,你就永远活着。
赚钱嘛,不寒碜