* JSON解析器:
        * 常见的解析器:Jsonlib,Gson,fastjson,jackson

    
    1. JSON转为Java对象
        1. 导入jackson的相关jar包
        2. 创建Jackson核心对象 ObjectMapper
        3. 调用ObjectMapper的相关方法进行转换
            1. readValue(json字符串数据,Class)
    2. Java对象转换JSON
        1. 使用步骤:
            1. 导入jackson的相关jar包
            2. 创建Jackson核心对象 ObjectMapper
            3. 调用ObjectMapper的相关方法进行转换
                1. 转换方法:
                    * writeValue(参数1,obj):
                        参数1:
                            File:将obj对象转换为JSON字符串,并保存到指定的文件中
                            Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
                            OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
                    * writeValueAsString(obj):将对象转为json字符串

2. 注解:
                    1. @JsonIgnore:排除属性。
                    2. @JsonFormat:属性值得格式化
                        * @JsonFormat(pattern = "yyyy-MM-dd")

3. 复杂java对象转换
                    1. List:数组
                    2. Map:对象格式一致

Person.java

package cn.itcast.domain;import com.fasterxml.jackson.annotation.JsonFormat;import java.util.Date;public class Person {private String name;private int age ;private String gender;//@JsonIgnore // 忽略该属性@JsonFormat(pattern = "yyyy-MM-dd")private Date birthday;public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +'}';}
}

JacksonTest.java

package cn.itcast.test;import cn.itcast.domain.Person;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;import java.io.FileWriter;
import java.util.*;public class JacksonTest {//Java对象转为JSON字符串@Testpublic void test1() throws Exception {//1.创建Person对象Person p  = new Person();p.setName("张三");p.setAge(23);p.setGender("男");//2.创建Jackson的核心对象  ObjectMapperObjectMapper mapper = new ObjectMapper();//3.转换/*转换方法:writeValue(参数1,obj):参数1:File:将obj对象转换为JSON字符串,并保存到指定的文件中Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中writeValueAsString(obj):将对象转为json字符串*/String json = mapper.writeValueAsString(p);//{"name":"张三","age":23,"gender":"男"}//System.out.println(json);//{"name":"张三","age":23,"gender":"男"}//writeValue,将数据写到d://a.txt文件中//mapper.writeValue(new File("d://a.txt"),p);//writeValue.将数据关联到Writer中mapper.writeValue(new FileWriter("d://b.txt"),p);}@Testpublic void test2() throws Exception {//1.创建Person对象Person p = new Person();p.setName("张三");p.setAge(23);p.setGender("男");p.setBirthday(new Date());//2.转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(p);System.out.println(json);//{"name":"张三","age":23,"gender":"男","birthday":1530958029263}//{"name":"张三","age":23,"gender":"男","birthday":"2018-07-07"}}@Testpublic void test3() throws Exception {//1.创建Person对象Person p = new Person();p.setName("张三");p.setAge(23);p.setGender("男");p.setBirthday(new Date());Person p1 = new Person();p1.setName("张三");p1.setAge(23);p1.setGender("男");p1.setBirthday(new Date());Person p2 = new Person();p2.setName("张三");p2.setAge(23);p2.setGender("男");p2.setBirthday(new Date());//创建List集合List<Person> ps = new ArrayList<Person>();ps.add(p);ps.add(p1);ps.add(p2);//2.转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(ps);// [{},{},{}]//[{"name":"张三","age":23,"gender":"男","birthday":"2018-07-07"},{"name":"张三","age":23,"gender":"男","birthday":"2018-07-07"},{"name":"张三","age":23,"gender":"男","birthday":"2018-07-07"}]System.out.println(json);}@Testpublic void test4() throws Exception {//1.创建map对象Map<String,Object> map = new HashMap<String,Object>();map.put("name","张三");map.put("age",23);map.put("gender","男");//2.转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(map);//{"name":"张三","age":23,"gender":"男"}System.out.println(json);//{"gender":"男","name":"张三","age":23}}//演示 JSON字符串转为Java对象@Testpublic void test5() throws Exception {//1.初始化JSON字符串String json = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":23}";//2.创建ObjectMapper对象ObjectMapper mapper = new ObjectMapper();//3.转换为Java对象 Person对象Person person = mapper.readValue(json, Person.class);System.out.println(person);}}

JSON数据和Java对象的相互转换相关推荐

  1. 7、JSON数据和Java对象的相互转换(客户端和服务器对象数据通讯用)

    JSON数据和Java对象的相互转换 需要使用JSON解析器(它是封装好的工具类),我们测试用用jackson         * 常见的解析器:Jsonlib,Gson(谷歌),fastjson(阿 ...

  2. JSON数据和JAVA对象之间的转换

    方法1: 利用阿里巴巴开源的fastjson包进行JAVA对象和JSON字符串进行转换. C++中的结构体在JAVA中用对象表示,目录结构如下: Peron类内容如下,对应C++中的Person结构体 ...

  3. json字符串与java对象的相互转换(jackson)

    1.java对象转换为json字符串 package com.chichung.json;import com.fasterxml.jackson.core.JsonProcessingExcepti ...

  4. json数据解析,json数据转为java对象

    在Android开发过程中,经常需要与后台进行数据的交互,JSON作为一种轻量级的数据格式,经常被 后台作为传输数据的格式,将数据传输到客户端.JSON有两种格式,一种是对象格式的,另一种是数组格式的 ...

  5. java xml收文转对象_Springmvc发送json数据转Java对象接收

    1.导包 基于maven com.fasterxml.jackson.core jackson-databind 2.9.0 com.fasterxml.jackson.core jackson-co ...

  6. json 解析 转java对象数组对象数组对象_json字符串转java对象数组

    需要引入json-lib-2.2-jdk15.jar和ezmorph-1.0.6.jar包 String itemStar = request.getParameter("itemStar& ...

  7. java中将json字符串_Java中JSON字符串与java对象的互换实例详解

    在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...

  8. Java中JSON字符串与java对象的互换实例详解

    这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...

  9. Json与Java对象的相互转换

    一.json JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集, ...

最新文章

  1. C#Socket编程详解(一)TCP与UDP简介
  2. OpenCV 加载图像、转换图像和保存图像
  3. 用Python求出:1到某个数的奇数序列里一共出现了多少个3
  4. android 使用webview访问优酷无法播放视频的问题
  5. 前端学习(2687):重读vue电商网站8之设置弹框提示组件
  6. POJ 3581 Sequence(后缀数组)题解
  7. IAP测试购买失败,Error Domain=SKErrorDomain Code=0 无法连接到 iTunes Store
  8. mysql数据库优化6_mysql数据库优化
  9. mysql动态脱敏查询_数据库动态脱敏
  10. 8种Python文本处理工具集
  11. 还不会用 Python 提取 PDF 表格?三种类型数据,轻松转换成 Excel
  12. 虚拟内存设置在其他盘引发的问题(待解决)
  13. 电脑上计算机软件一直自动弹出,拨号连接自动弹出,详细教您如何解决电脑总是自动弹出...
  14. 跟李沐学深度学习-softmax回归
  15. uni-app 华为离线推送 Assist_HW: get hms token failed:6003: certificate fingerprint error
  16. react+antd的后台管理项目模板
  17. Spring Boot @EnableAutoConfiguration解析
  18. 最大公约数的几种基本求解方法
  19. 记录第一次被黑数据库
  20. oracle—pl/sql

热门文章

  1. vue 使用sass 和less
  2. 监听Activity的生命周期的方式。
  3. SCIP习题 1.21(寻找最小因子)
  4. JavaScript中七种函数调用方式及对应 this 的含义
  5. TWaver HTML5 + Node.js + express + socket.io + redis(六)
  6. 邮件Web客户端相关
  7. CSDN移动助手v0.01发布
  8. Android通过JNI调用驱动程序(完全解析实例)
  9. ProtoBuf使用指南(C++)
  10. adb指令没有数据线,在WLAN下也可使用