使用jackson和fastjson实现list与json互转

简介: 使用jackson和fastjson实现list与json互转

一、依赖

fastjson依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.56</version>
</dependency>

jackson依赖

springMVC默认json解析器就是jackson,如果是springweb项目不用导入

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.7.3</version>
</dependency>

二、代码

package xxxx.entity;
 
 
 
 
 
 
public class DeliveryMan implements Serializable {
 
    private String name;
 
    private String phone;
    private String area;
    private String officeholding;
    private String jobnum;
    private int state;
 
    public DeliveryMan() {
    }
 
    public DeliveryMan(String name, String phone, String area, String officeholding, String jobnum, int state) {
        this.name = name;
        this.phone = phone;
        this.area = area;
        this.officeholding = officeholding;
        this.jobnum = jobnum;
        this.state = state;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getPhone() {
        return phone;
    }
 
    public void setPhone(String phone) {
        this.phone = phone;
    }
 
    public String getArea() {
        return area;
    }
 
    public void setArea(String area) {
        this.area = area;
    }
 
    public String getOfficeholding() {
        return officeholding;
    }
 
    public void setOfficeholding(String officeholding) {
        this.officeholding = officeholding;
    }
 
    public String getJobnum() {
        return jobnum;
    }
 
    public void setJobnum(String jobnum) {
        this.jobnum = jobnum;
    }
 
    public int getState() {
        return state;
    }
 
    public void setState(int state) {
        this.state = state;
    }
 
    @Override
    public String toString() {
        return "DeliveryMan{" +
                "name='" + name + '\'' +
                ", phone='" + phone + '\'' +
                ", area='" + area + '\'' +
                ", officeholding='" + officeholding + '\'' +
                ", jobnum='" + jobnum + '\'' +
                ", state=" + state +
                '}';
    }
    
}
package xxxx.xxx;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.uublue.food.Application;
import com.uublue.food.delivery.entity.DeliveryMan;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
 
import java.io.IOException;
import java.util.ArrayList;
 
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class UtilPay {   
    @Test
    public void jsontostring() throws IOException {
        ObjectMapper mapper = new ObjectMapper();
 
        DeliveryMan man=new DeliveryMan();
        man.setState(1);
        man.setPhone("1111");
 
        DeliveryMan man2=new DeliveryMan();
        man2.setState(2);
        man2.setPhone("2222");
 
        ArrayList<DeliveryMan> list=new ArrayList<>();
        list.add(man);
        list.add(man2);
//list转string
        String s1 = JSONArray.toJSONString(list);
        String s2 = mapper.writeValueAsString(list);
        System.out.println("com.alibaba.fastjson.JSONArray;");
        System.out.println(s1);
        System.out.println("om.fasterxml.jackson.databind.ObjectMapper;");
        System.out.println(s2);
//string转list
        java.util.List<DeliveryMan>  deliveryManList1= JSON.parseArray(s1, DeliveryMan.class);
        java.util.List<DeliveryMan>  deliveryManList2= mapper.readValue(s2, mapper.getTypeFactory().constructParametricType(ArrayList.class, DeliveryMan.class));
 
        System.out.println("com.alibaba.fastjson.JSONArray");
        System.out.println(deliveryManList1.toString());
        System.out.println("om.fasterxml.jackson.databind.ObjectMapper");
        System.out.println(deliveryManList2.toString());
 
    }
}
com.alibaba.fastjson.JSONArray;
[{"phone":"1111","state":1,"user_id":0},{"phone":"2222","state":2,"user_id":0}]
om.fasterxml.jackson.databind.ObjectMapper;
[{"id":null,"name":null,"phone":"1111","area":null,"officeholding":null,"jobnum":null,"state":1,"createtime":null,"updatetime":null,"user_id":0},{"id":null,"name":null,"phone":"2222","area":null,"officeholding":null,"jobnum":null,"state":2,"createtime":null,"updatetime":null,"user_id":0}]
com.alibaba.fastjson.JSONArray
[DeliveryMan{name='null', phone='1111', area='null', officeholding='null', jobnum='null', state=1, createtime=null, updateTime=null, user_id=0}, DeliveryMan{name='null', phone='2222', area='null', officeholding='null', jobnum='null', state=2, createtime=null, updateTime=null, user_id=0}]
om.fasterxml.jackson.databind.ObjectMapper
[DeliveryMan{name='null', phone='1111', area='null', officeholding='null', jobnum='null', state=1, createtime=null, updateTime=null, user_id=0}, DeliveryMan{name='null', phone='2222', area='null', officeholding='null', jobnum='null', state=2, createtime=null, updateTime=null, user_id=0}]
 

三、参考文章

jackson完成json和对象/map/list互转:https://blog.csdn.net/qq_37936542/article/details/79268402


fastjson List<> 转Json , Json 转List<>:https://www.cnblogs.com/xiaohouzai/p/8972286.html

相关文章
|
3月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
200 0
在Java中处理JSON数据:Jackson与Gson库比较
|
3月前
|
JSON 安全 fastjson
高性能 JSON 处理:为何选择 Fastjson?
Fastjson 是由阿里巴巴集团开发的一个高性能的 JSON 处理库,它支持 Java 对象与 JSON 字符串之间的互相转换。
212 0
高性能 JSON 处理:为何选择 Fastjson?
|
3月前
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
428 7
|
5月前
|
JSON Java API
Jackson:SpringBoot中的JSON王者,优雅掌控数据之道
【8月更文挑战第29天】在Java的广阔生态中,SpringBoot以其“约定优于配置”的理念,极大地简化了企业级应用的开发流程。而在SpringBoot处理HTTP请求与响应的过程中,JSON数据的序列化和反序列化是不可或缺的一环。在众多JSON处理库中,Jackson凭借其高效、灵活和强大的特性,成为了SpringBoot中处理JSON数据的首选。今天,就让我们一起深入探讨Jackson如何在SpringBoot中优雅地控制JSON数据。
178 0
|
5月前
|
JSON 算法 算法框架/工具
【python】python指南(十二):Json与dict、list互相转换
【python】python指南(十二):Json与dict、list互相转换
29 0
|
6月前
|
JSON 安全 fastjson
FastJSON库:JSON处理效率与安全性评估
FastJSON库:JSON处理效率与安全性评估
|
3月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
2月前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
2月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
2月前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。