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

  1. JSON转为Java对象

    ① 导入jackson的相关jar包

    ② 创建Jackson核心对象 ObjectMapper

    ③ 调用ObjectMapper的相关方法进行转换:readValue(json字符串数据,Class)

    ④ 代码
    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 {//演示 JSON字符串转为Java对象@Testpublic void test() 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);}}
  2. Java对象转换JSON(使用jackson

    ① 导入jackson的相关jar包

    ② 创建Jackson核心对象 ObjectMapper

    ③ 调用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}}
    }

JavaWeb:JSON对象和Java对象的相互转换相关推荐

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

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

  2. JSON数据和Java对象的相互转换

    * JSON解析器:         * 常见的解析器:Jsonlib,Gson,fastjson,jackson          1. JSON转为Java对象         1. 导入jack ...

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

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

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

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

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

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

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

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

  7. Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  8. json java typeof_Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  9. 对象json字符串数组 java对象,java把json的字符串转换为json对象和数组

    [Json--使用Json jar包实现Json字符串与Java对象或集合之间的互相转换] 1,[java将JSON字符串转换为实体类对象 @SuppressWarnings(unchecked)pu ...

  10. Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换

    总结一下利用Json相关jar包实现Java对象和集合与Json字符串之间的互相转换: 1.创建的User类: package com.ghj.packageofdomain;public class ...

最新文章

  1. golang中的strings.Compare
  2. 服务器端PHP多进程编程
  3. 在Chrome插件上获取当前插件的版本号
  4. JAX-RS 2.0:自定义内容处理
  5. [导入]Linq学习笔记(2.2)——深入DLinq查询
  6. 如何创建SQL Server日志传送
  7. 解读Linux下的password命令
  8. [高光谱] Hyperspectral-Classification Pytorch 的高光谱场景的通用类 HyperX
  9. Mac电脑卡在启动模式了怎么办?
  10. [FZYZOJ 1002] 雨天
  11. jquery实现div自适应浏览器高度
  12. ASM 知识(转自三思笔记)
  13. 基于51单片机的12864液晶显示4X4矩阵键盘程序仿真
  14. 使用JSON.parse字符串转换json报错解决办法
  15. VS2017 社区版 许可证过期
  16. OPTEE的进程间通信(Inter-Process Communication, IPC)
  17. Linux yum源文件
  18. 苏格拉底的爱情与婚姻观
  19. python nginx部署_nginx部署python应用
  20. 新加坡国立大学Xinchao Wang老师招收图神经网络方向博士/博后

热门文章

  1. 4.数据结构 --- 串
  2. 14.PHP核心技术与最佳实践 --- PHP 编码规范
  3. 48.Linux/Unix 系统编程手册(下) -- System V 共享内存
  4. 12. 程序扩展性(高级特性)
  5. 13. jQuery - 设置内容和属性
  6. 3.安装Discuz
  7. C# 匿名对象(匿名类型)、var、动态类型 dynamic
  8. 【笔记】生成函数与大背包问题
  9. 软件工程项目____搜查令
  10. JAVA 最新 环境搭建(JDK 1.8 + Tomcat 9 + eclipse oxygen + mysql 5.7)