JSON工具类

2023-11-18

     在实际开发中通服都是使用JSON格式数据,那么如何跟JSON打交道呢,下面就写一些JSON的常用转换工具,以及JSON数据提取。

目录

阿里的FastJSON

JSONObject类

JSON类

JSONArray

JSONPath

JsonPath类

 jackson

 ObjectMapper


阿里的FastJSON

	<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.62</version>
		</dependency>

JSONObject类

/*map格式数据转jsonObject类*/
public JSONObject(java.util.Map<java.lang.String,java.lang.Object> map) { }

/*初始化创建JSONObject类*/
public JSONObject(int initialCapacity, boolean ordered) { }

/*JSONObject类是否包含该key*/
public boolean containsKey(java.lang.Object key) {  }

/*JSONObject类是否包含该value*/
public boolean containsValue(java.lang.Object value) { }

/*JSONObject类获取key的value值*/
public java.lang.Object get(java.lang.Object key) { }

//JSONObject对象解析
public com.alibaba.fastjson.JSONObject getJSONObject(java.lang.String key) {  }

/*JSONObject类 获取Value值是JSONArray的key*/
public com.alibaba.fastjson.JSONArray getJSONArray(java.lang.String key) { }

//提取JSON并映射到一个实体类上
public <T> T getObject(java.lang.String key, java.lang.Class<T> clazz) { }

public java.lang.Boolean getBoolean(java.lang.String key) {  }

public java.sql.Timestamp getTimestamp(java.lang.String key) { }

public java.lang.Object put(java.lang.String key, java.lang.Object value) {  }

public void putAll(java.util.Map<? extends java.lang.String,? extends java.lang.Object> m) { }

public void clear() {}
public java.lang.Object remove(java.lang.Object key) {  }
public java.util.Collection<java.lang.Object> values() {}
public java.lang.Object clone() {  }
public boolean equals(java.lang.Object obj) { /* compiled code */ }
public java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.Throwable { /* compiled code */ }

JSON类

public static final java.lang.Object parse(java.lang.String text) { /* compiled code */ }
public static final java.lang.Object parse(java.lang.String text, int features) { }

//带格式返回
public static final java.lang.Object parse(byte[] input, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final java.lang.Object parse(java.lang.String text, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final com.alibaba.fastjson.JSONObject parseObject(java.lang.String text, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final com.alibaba.fastjson.JSONObject parseObject(java.lang.String text) { /* compiled code */ }
public static final <T> T parseObject(java.lang.String text, java.lang.Class<T> clazz, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final <T> T parseObject(java.lang.String text, com.alibaba.fastjson.TypeReference<T> type, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final <T> T parseObject(java.lang.String input, java.lang.reflect.Type clazz, com.alibaba.fastjson.parser.Feature... features) { /* compiled code */ }
public static final <T> T parseObject(java.lang.String text, java.lang.Class<T> clazz) { /* compiled code */ }
public static final com.alibaba.fastjson.JSONArray parseArray(java.lang.String text) { /* compiled code */ }
public static final <T> java.util.List<T> parseArray(java.lang.String text, java.lang.Class<T> clazz) { /* compiled code */ }
public static final java.lang.String toJSONString(java.lang.Object object, com.alibaba.fastjson.serializer.SerializerFeature... features) { /* compiled code */ }
public static final java.lang.String toJSONString(java.lang.Object object, boolean prettyFormat) { /* compiled code */ }
public static final void writeJSONStringTo(java.lang.Object object, java.io.Writer writer, com.alibaba.fastjson.serializer.SerializerFeature... features) { /* compiled code */ }

JSONArray

public JSONArray(java.util.List<java.lang.Object> list) { /* compiled code */ }
public JSONArray(int initialCapacity) { /* compiled code */ }
public int size() { /* compiled code */ }
public boolean isEmpty() { /* compiled code */ }

public boolean contains(java.lang.Object o) { /* compiled code */ }

public java.util.Iterator<java.lang.Object> iterator() { /* compiled code */ }
public <T> T[] toArray(T[] a) { /* compiled code */ }
public java.lang.Object[] toArray() { /* compiled code */ }
public boolean add(java.lang.Object e) { /* compiled code */ }
public boolean remove(java.lang.Object o) { /* compiled code */ }
public boolean containsAll(java.util.Collection<?> c) { /* compiled code */ }
public boolean addAll(java.util.Collection<? extends java.lang.Object> c) { /* compiled code */ }
public boolean addAll(int index, java.util.Collection<? extends java.lang.Object> c) { /* compiled code */ }
public boolean retainAll(java.util.Collection<?> c) { /* compiled code */ }
public boolean removeAll(java.util.Collection<?> c) { /* compiled code */ }
public java.lang.Object set(int index, java.lang.Object element) { /* compiled code */ }
public void add(int index, java.lang.Object element) { /* compiled code */ }
public java.lang.Object get(int index) { /* compiled code */ }
public com.alibaba.fastjson.JSONObject getJSONObject(int index) { /* compiled code */ }

JSONPath

       <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
        </dependency>

JsonPath类

public <T> T read(java.lang.Object jsonObject) { /* compiled code */ }
public <T> T set(java.lang.Object jsonObject, java.lang.Object newVal, com.jayway.jsonpath.Configuration configuration) { /* compiled code */ }
public <T> T read(java.lang.String json) { /* compiled code */ }
public <T> T add(java.lang.Object jsonObject, java.lang.Object value, com.jayway.jsonpath.Configuration configuration) { /* compiled code */ }
public static com.jayway.jsonpath.DocumentContext parse(java.lang.String json) { /* compiled code */ }
public static com.jayway.jsonpath.DocumentContext parse(java.lang.Object json, com.jayway.jsonpath.Configuration configuration) { /* compiled code */ }
public static com.jayway.jsonpath.DocumentContext parse(java.net.URL json) throws java.io.IOException { /* compiled code */ }

实例:
   public static String jsonFromJsonPath(String json, String path) {
        try {
            String rs = JsonPath.read(json, path);
            return rs;
        } catch (Exception e) {
            log.info("---jsonpath解析出错-  {}--", e.getMessage());
        }
        return null;
    }

 jackson

<!-- json包  jackson-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.5</version>
</dependency>
 
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.5</version>
</dependency>
 
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.8.5</version>
</dependency>

 ObjectMapper

 public static ObjectMapper objectMapper = new ObjectMapper();

public <T> T readValue(JsonParser p, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(JsonParser p, JavaType valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T extends TreeNode> T readTree(JsonParser p)
    throws IOException, JsonProcessingException
public void writeValue(JsonGenerator g, Object value)
    throws IOException, JsonGenerationException, JsonMappingException
public <T> T readValue(File src, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(File src, JavaType valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(URL src, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(String content, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(InputStream src, Class<T> valueType)
    throws IOException, JsonParseException, JsonMappingException
public void writeValue(File resultFile, Object value)
    throws IOException, JsonGenerationException, JsonMappingException
public void writeValue(OutputStream out, Object value)
    throws IOException, JsonGenerationException, JsonMappingException
public String writeValueAsString(Object value)
    throws JsonProcessingException
public byte[] writeValueAsBytes(Object value)
    throws JsonProcessingException
public ObjectWriter writer()
public ObjectWriter writer(SerializationFeature feature) 

public class JSONUtils {
    //静态
    public static ObjectMapper objectMapper = new ObjectMapper();

    /**
     * json结果集转对象
     * @param jsonData
     * @param beanType
     * @param <T>
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = objectMapper.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 将字符串数组转换为object数组
     * @param <T>
     * @Author 鹿少年 2020年9月18日 上午9:29:09
     * @param jsonData
     * @param beanType
     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> T[] JsonArrayStringToObajectArray(String jsonData, Class<T[]> beanType) {
        T[] array = null;
        try {
            array = (T[]) objectMapper.readValue(jsonData, beanType);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return array;
    }

    /**
     * 将json数据转换成pojo对象list
     * @Author 鹿少年 2020年9月18日 下午1:46:45
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonArrayToList(String jsonData, Class<T[]> beanType) {
        try {
            return Arrays.asList(objectMapper.readValue(jsonData, beanType));

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * jsonarray转list,不可以转map
     * @Author 鹿少年 2020年9月18日 下午1:11:20
     * @param jsonData
     * @param T
     * @return
     */
    public static <T> List<T> JsonArrayToList(String jsonData, TypeReference T) {
        try {
            return (List<T>) objectMapper.readValue(jsonData, T);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON工具类 的相关文章

随机推荐

  • VMware安装Windows Server 2003提示Operating System not found

    VMware安装Windows Server 2003提示Operating System not found 解决方法 首先 检查虚拟机设置里的设备状态的启动时连接是不是没勾选 还是不行的话 换一个ISO文件 正常的文件大小是600多兆
  • EMQ关闭MQTT客户端匿名认证

    本文默认已经安装并且开启emqttd 做的事是关闭MQTT客户端匿名认证并且通过username和passward认证 且有一定的Linux命令基础 环境 Ubuntu16 04 emq v3 2 1 正文 关闭匿名认证 emq安装时 默认
  • MATLAB数据预处理之缺失值插补

    文章目录 前言 1 加载原始数据 2 查找缺失值并填充缺失值 总结 2021年4月5日09 51 56更新 2021年5月18日10 46 15更新 2022年10月15日07 25 01更新 参考资料 前言 现实中采集的原始数据不一定满足
  • Apache HTTP Server 2.4.49 路径穿越漏洞复现及利用

    漏洞介绍 Apache HTTP Server是Apache基金会开源的一款流行的HTTP服务器 在其2 4 49版本中 引入了一个路径穿越漏洞 满足下面两个条件的Apache服务器将会受到影响 版本等于2 4 49 穿越的目录允许被访问
  • html任务3 模拟滚动条,vue3系列:vue3.0自定义虚拟滚动条V3Scroll

    Desc Vue3 0虚拟滚动条组件V3Scroll Time andy by 2021 01 About Q 282310962 wx xy190310 props Vue3 x自定义指令写法 监听DOM尺寸变化 directives r
  • 微信小程序之基础指南

    目录 1 申请账号 2 微信开发者工具 3 小程序代码构成 3 1 JSON配置 3 1 1 小程序全局配置app json 3 1 2 小程序页面配置 3 1 3 sitemap 配置 4 小程序框架 4 1 场景值 4 2 注册小程序
  • 探密微信小程序开发中的OpenlD

    说到微信小程序开发 我们不得不提到原生系统中自带的OPENiD 用户在跟公众号交互时 为了让程序识别用户的身份 需要有一个身份标识 出于对用户信息安全的考虑 保护用户隐私 微信没有暴露用户的微信号 而是对开发者提供OpenlD 它是一个由数
  • 数学建模(三)—— 自动化车床管理

    一 题目要求 二 相关的基础知识 2 1 正态分布的假设检验 2 2 正态分布的概率 三 问题分析 四 模型的建立与求解 4 1 数据处理及分析 4 2 问题一模型的建立与求解 4 2 1 问题一模型的建立 4 2 2 问题一模型的求解 4
  • 面试复习题--音视频

    1 音频处理 oboe openSL es AAudio 2 视频处理 ffmpeg 3 图片处理 GPUImage OpenCV fastCV 4 图形基础 skia Vulkan
  • 匿名信V1.4.5.1版本更新“数据大屏”功能

    匿名信V1 4 5 1版本更新 数据大屏 功能 源码下载 匿名信h5源码 万策云盘 匿名信安装教程 匿名信v1 4 4源码下载 安装教程 匿名信 廖万里的博客 本文链接 匿名信V1 4 5 1版本更新 数据大屏 功能 匿名信 廖万里的博客
  • java中long最大值源码表示_通过JDK源码角度分析Long类详解

    概况 Java的Long类主要的作用就是对基本类型long进行封装 提供了一些处理long类型的方法 比如long到String类型的转换方法或String类型到long类型的转换方法 当然也包含与其他类型之间的转换方法 除此之外还有一些位
  • MySQL简述1

    MySQL是什么 MySQL优点 MySQL的四种分类 数据库的三大范式 多表查询 左连接 右连接 内连接 交叉连接 显式 隐式 子查询 事物 特性 原子性 一致性 隔离性 持久性 并发问题 脏读 读未提交 不可重复读 读已提交 幻读 可重
  • 机器学习之高斯过程

    高斯过程 高斯过程 Gaussian Process 高斯分布 置信区间 随机过程 高斯分布的特点 核函数 白噪声处理 实战 高斯过程 Gaussian Process 在机器学习领域里 高斯过程是一种假设训练数据来自无限空间 并且各特征都
  • Fiddler 微信小程序抓图教程(非常详细)从零基础入门到精通,看完这一篇就够了

    前言 本篇文章主要给大家详细讲解如何用Fiddler爬取微信小程序的图片 内容图文并茂 流程非常简单 我们开始吧 目录 一 获取软件并打开 二 点击工具设置相关代理 三 如何抓图 四 答疑 五 总结 一 获取软件并打开 1 通过百度网盘下载
  • 因果推断----do演算

    do演算 合法 的do表达式变换 规则1 如果我们观察到变量W与Y无关 其前提可能是以其他变量Z为条件 那么Y的概率分布就不会随W而改变 即 P Y d
  • vue3+elementPlus-浏览器告警解决error.ts:14 ElementPlusError: [ElPagination] 你使用了一些已被废弃的用法,请参考 el-pagination

    问题 在使用elementuiPlus的分页器组件的时候 发现会有如下图警告 检查代码
  • 微信小程序父组件向子组件传参,子组件样式无效问题处理

    微信小程序父组件向子组件传参 子组件样式无效问题处理 父组件代码 引入 json usingComponents evaluate evaluate evaluate wxml
  • dp 1.4协议_浅析关于HDMI接口与DP接口

    显示器现在主流已经为HDMI接口与DP接口 那么这些接口都有什么区别 以下表格会大致做个区分 建议优先使用DP接口 HDMI2 1接口目前仅发布协议 尚未大规模商用在高清电视机上有部分应用 Mini DP接口版本为DP1 2 HDMI2 1
  • libcurl库安装心得

    一 libcurl简介 libcurl是一个跨平台的网络协议库 支持http https ftp gopher telnet dict file 和ldap 协议 libcurl同样支持HTTPS证书授权 HTTP POST HTTP PU
  • JSON工具类

    在实际开发中通服都是使用JSON格式数据 那么如何跟JSON打交道呢 下面就写一些JSON的常用转换工具 以及JSON数据提取 目录 阿里的FastJSON JSONObject类 JSON类 JSONArray JSONPath Json