老程序员分享:java对象转json

简介: 老程序员分享:java对象转json

java对象转json


JSON解析器:


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


使用步骤:


  1.导入jackson相关jar包


  2.创建jackson核心对象 ObjectMapper


  3.调用ObjectMapper的相关方法转换


转换方法:


  writeValue(参数1,obj):


    参数1:


      File:将obj对象转换为JSON字符串,并保存到指定的文件中


      Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中


      OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中


  writeValueAsString(obj):将对象转为json字符串


Person实体类:


package com.example.domain;


public class Person {


//代码效果参考:http://hnjlyzjd.com/xl/wz_24089.html

private String name;

private int age;


private String gender;


@Override


public String toString() {


return "Person{" +


"name='" + name + '\'' +


", age=" + age +


", gender='" + gender + '\'' +


'}';


}


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;


}


}


测试类:java转换位json字符串


package com.example.test;


import com.example.domain.Person;


import com.fasterxml.jackson.core.JsonProcessingException;


import com.fasterxml.jackson.databind.ObjectMapper;


import org.junit.Test;


import java.io.File;


import java.io.FileWriter;


public class JacksonTest {


//Java对象转为JSON字符串


@Test


public void test1() throws Exception {


//1.创建Person对象


Person person = new Person();


person.setName("张三");


person.setAge(23);


person.setGender("男");


//2.创建Jackson的核心对象 ObjectMapper


ObjectMapper 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(person);


//System.out.println(json);// {"name":"张三","age":23,"gender":"男"}


//writeValue:将数据写到d:a.txt文件中


//mapper.writeValue(new File("d:a.txt"), person);


//writeValue:将数据关联到Writer中


mapper.writeValue(new FileWriter(""), person);


}


}


java对象转json-注解


注解:


  1.@JsonIgnore:排除属性。


public class Person {


private String name;


private int age;


private String gender;


//@JsonIgnore // 忽略该属性


private Date birthday;


测试:


@Test


public void test2() throws Exception {


//1.创建Person对象


Person person = new Person();


person.setName("张三");


person.setAge(20);


person.setGender("男");


person.setBirthday(new Date());


//2.转换


ObjectMapper mapper = new ObjectMapper();


String string = mapper.writeValueAsString(person);


System.out.println(string);// {"name":"张三","age":23,"gender":"男","birthday":1675910553917}


}


  2.@JsonFormat:属性值格式化


public class Person {


private String name;


private int age;


private String gender;


@JsonFormat(pattern = "yyyy-MM-dd") // 格式化该属性


private Date birthday;


测试:


@Test


public void test2() throws Exception {


//1.创建Person对象


Person person = new Person();


person.setName("张三");


person.setAge(20);


person.setGender("男");


person.setBirthday(new Date());


//2.转换


ObjectMapper mapper = new ObjectMapper();


String string = mapper.writeValueAsString(person);


System.out.println(string);// {"name":"张三","age":23,"gender":"男","birthday":1675910553917}


}


java对象转json-List&Map


List集合:数组(对应的是字符串就是字符串对象)


@Test


public void test3() throws Exception {


//1.创建Person对象


Person person = new Person();


person.setName("张三");


person.setAge(23);


person.setGender("男");


person.setBirthday(new Date());


Person person1 = new Person();


person1.setName("张三");


person1.setAge(23);


person1.setGender("男");


person1.setBirthday(new Date());


Person person2 = new Person();


person2.setName("张三");


person2.setAge(23);


person2.setGender("男");


person2.setBirthday(new Date());


//创建list集合


List


people = new ArrayList();


people.add(person);


people.add(person1);


people.add(person2);


//2.转换


ObjectMapper mapper = new ObjectMapper();


String string = mapper.writeValueAsString(people);


//【{"name":"张三","age":23,"gender":"男","birthday":"2023-02-09"},{"name":"张三","age":23,"gender":"男","birthday":"2023-02-09"},{"name":"张三","age":23,"gender":"男","birthday":"2023-02-09"}】


System.out.println(string);


}


Map集合:对象格式一致


@Test


public void test4() throws Exception {


//1.创建map对象


HashMap map = new HashMap();


map.put("name", "张三");


map.put("age", "20");


map.put("gender", "男");


//2.转换


ObjectMapper mapper = new ObjectMapper();


String string = mapper.writeValueAsString(map);


//{"gender":"男","name":"张三","age":"20"}


System.out.println(string);


}

相关文章
|
7天前
|
Java 编译器
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
20 9
Java——类与对象(继承和多态)
|
7天前
|
SQL Java 编译器
Java——类与对象(封装)
封装是面向对象编程中的概念,指将数据(属性)和相关操作(方法)组合成独立单元(类),使外部无法直接访问对象的内部状态,只能通过提供的方法进行交互,从而保护数据安全。例如,手机将各种组件封装起来,只暴露必要的接口供外部使用。实现封装时,使用`private`关键字修饰成员变量,并提供`get`和`set`方法进行访问和修改。此外,介绍了包的概念、导入包的方式及其注意事项,以及`static`关键字的使用,包括静态变量和方法的初始化与代码块的加载顺序。
18 10
Java——类与对象(封装)
|
7天前
|
Java C语言
Java——类与对象
这段内容介绍了Java中的类和对象、`this`关键字及构造方法的基本概念。类是对现实世界事物的抽象描述,包含属性和方法;对象是类的实例,通过`new`关键字创建。`this`关键字用于区分成员变量和局部变量,构造方法用于初始化对象。此外,还介绍了标准JavaBean的要求和生成方法。
18 9
Java——类与对象
|
9天前
|
存储 Java
Java的对象和类的相同之处和不同之处
在 Java 中,对象和类是面向对象编程的核心。
|
2天前
|
Java
Java实现:将带时区的时间字符串转换为LocalDateTime对象
通过上述方法,你可以将带时区的时间字符串准确地转换为 `LocalDateTime`对象,这对于处理不需要时区信息的日期和时间场景非常有用。
43 4
|
2天前
|
SQL Java 关系型数据库
在Java中,创建数据源对象
在Java中,创建数据源对象
10 1
|
8天前
|
存储 Java
Java编程中的对象序列化与反序列化
【9月更文挑战第12天】在Java的世界里,对象序列化与反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何通过实现Serializable接口来标记一个类的对象可以被序列化,并探索ObjectOutputStream和ObjectInputStream类的使用,以实现对象的写入和读取。我们还将讨论序列化过程中可能遇到的问题及其解决方案,确保你能够高效、安全地处理对象序列化。
|
1月前
|
JSON 前端开发 JavaScript
|
22天前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
10天前
|
JSON JavaScript 前端开发
Haskell中的数据交换:通过http-conduit发送JSON请求
Haskell中的数据交换:通过http-conduit发送JSON请求