JSON转换工具

2023-05-16

JSON的处理:

  • JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。

  • 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和生成,并有效的 提升网络传输效率。

创建格式:

在这里插入图片描述

JSON转换工具的介绍:

  • 我们除了可以在 JavaScript 中来使用 JSON 以外,在 JAVA 中同样也可以使用 JSON。

  • JSON 的转换工具是通过 JAVA 封装好的一些 JAR 工具包。

  • 可以将 JAVA 对象或集合转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转成 JAVA 对象。

  • Jackson:开源免费的 JSON 转换工具,SpringMVC 转换默认使用 Jackson。

    • 导入 jar 包。
    • 创建核心对象。
    • 调用方法完成转换。

常用方法:
在这里插入图片描述

常用类

在这里插入图片描述

ObjectMapper常用方法

  • 在这里插入图片描述

JSON转换:

对象转 JSON, JSON 转对象:

public class ObjectMapperTest {

    private ObjectMapper mapper = new ObjectMapper();

    @Test
    public void test01() throws Exception {
        User user = new User("韩信", 99);
        //User对象转json
        String json = mapper.writeValueAsString(user);
        System.out.println("json字符串:" + json);

        //json转User对象
        User user2 = mapper.readValue(json, User.class);
        System.out.println("json对象:" + user2);
    }
}

Map转 JSON, JSON 转 Map:

private ObjectMapper mapper = new ObjectMapper();    

@Test
public void test02() throws Exception {

        // map转json
        HashMap<String, String> map = new HashMap<>();
        map.put("姓名", "韩信");
        map.put("性别", "男");
        String json = mapper.writeValueAsString(map);
        System.out.println("json字符串:" + json);

        // json转map
        HashMap user = mapper.readValue(json, HashMap.class);
        System.out.println("json对象:" + user);
    }

@Test
public void test03() throws Exception {
        // map转json
        HashMap<String, User> map = new HashMap<>();
        map.put("打野", new User("韩信", 99));
        map.put("中单", new User("不知去向", 97));
        String json = mapper.writeValueAsString(map);
        System.out.println("json字符串:" + json);

        // json转map  map如果有自定义类型就要用TypeReference
        HashMap<String, User> user = mapper.readValue(json, new TypeReference<HashMap<String, User>>() {});
        System.out.println("json对象:" + user);
    }

List转 JSON, JSON 转 List:

    @Test
    public void test04() throws Exception {
        // List<String>转json
        ArrayList<String> list = new ArrayList<>();
        list.add("上官原地");
        list.add("不知去向");
        String json = mapper.writeValueAsString(list);
        System.out.println("json字符串:" + json);

        // json转List<string>
        ArrayList user = mapper.readValue(json, ArrayList.class);
        System.out.println("json对象:" + user);
    }

    @Test
    public void test05() throws Exception {
        // List<String>转json
        ArrayList<User> list = new ArrayList<>();
        list.add(new User("上官原地", 99));
        list.add(new User("不知去向", 11));
        String json = mapper.writeValueAsString(list);
        System.out.println("json字符串:" + json);

        // json转List<string>
        ArrayList user = mapper.readValue(json, new TypeReference<ArrayList<User>>() {
        });
        System.out.println("json对象:" + user);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON转换工具 的相关文章

  • 如何反序列化键名.Net中包含点(.)的Json字符串[重复]

    这个问题在这里已经有答案了 odata metadata sometext odata nextLink sometext value odata type SP Data RegionsListItem odata id 07404daa
  • Groovy - JsonSlurper 解析 JSON 文件

    我有一个类似于下面的 JSON 文档 我正在尝试在 Groovy 中解析它 基本上对于每所学校 学校信息 我想抓住SCHOOL COUNTRY和其他领域 我正在尝试下面的代码 但它没有返回我需要的内容 对于列出的每所学校 1 000 所 我
  • 复杂对象MVC3的JSON序列化

    我有一个问题 我似乎不知道如何序列化类型的对象 public class SchedulingCalendarMonth public List
  • SQL Server OPENJSON读取嵌套json

    我有一些想要在 SQL Server 2016 中解析的 json 有一个项目 gt 结构 gt 属性的层次结构 我想编写一个解析整个层次结构的查询 但我不想通过索引号指定任何元素 即我不想做这样的事情 openjson json 0 or
  • Haskell Data.Decimal 作为 Aeson 类型

    是否可以解析一个数据 十进制 https hackage haskell org package Decimal 0 4 2 docs Data Decimal html使用 Aeson 包从 JSON 获取 假设我有以下 JSON foo
  • 发送 POST 请求时 JSON 原语无效

    我有以下 ajax 请求 其中我尝试将 JSON 对象发送到服务器 function sendData subscriptionJson ajax type POST url Url Action SubscribeSecurities S
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • Hive:如何分解嵌入 CSV 文件中的 JSON 列?

    从 CSV 文件 带有标题和管道分隔符 中 我得到了以下两个内容 其中包含一个 JSON 列 内部有一个集合 如下所示 第一种情况 使用没有名称的 JSON 集合 ProductId IngestTime ProductOrders 918
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • 使用 urllib2 从 FlightRadar24 获取数据时出现问题

    我正在尝试使用下面的脚本从 FlightRadar24 获取数据 基于这个答案 https stackoverflow com a 526695 3904031来处理cookies 当我当前在浏览器中输入该 url 时 我会得到一个不错的长
  • 如何在 JSFiddle 中链接外部 json 文件?

    我有一个很长的 json 文件country json name WORLD population 6916183000 name More developed regions population 1240935000 name Less
  • 自动将 JSON 对象映射到 Ruby 中的实例变量

    我希望能够自动将 JSON 对象解析为实例变量 例如 使用此 JSON require httparty json HTTParty get http api dribbble com players simplebits gt shots
  • 简单、安全的API认证系统

    我有一个简单的 REST JSON API 供其他网站 应用程序访问我网站的一些数据库 通过 PHP 网关 基本上该服务的工作原理如下 调用 example com fruit orange 服务器返回有关橙子的 JSON 信息 问题是 我
  • 如何在自动完成表单的脚本中获取 json 文件的多个值

    拜托 我是 php 初学者 我想使用像这样的 json 编码的数组 http stegonia fr autocomplete index2 php http stegonia fr autocomplete index2 php 您可以看
  • 在 JSON 数组中按属性查找对象

    我在获取 JSON 数据中的字符串时遇到问题 格式如下 name Alice age 20 id David last 25 id John last 30 有时它会一起改变位置 John从第三名到第二名 name Alice age 20
  • json文件格式的升级路径

    我们将 Java 应用程序的用户首选项存储在 JSON 文件中 使用Jackson http jackson codehaus org 随着我们继续开发该应用程序 我们将添加首选项 重命名首选项并删除过时的首选项 当用户将应用程序升级到下一
  • React Native / Laravel - 向 API 发送请求

    我正在实现一个移动应用程序 它使用 Laravel 作为 API 与数据库进行通信 我想将用户名和密码从我的 React Native 应用程序发送到 Laravel 我正在使用以下代码来执行此操作 fetch mysite com api
  • 使用来自Processing-JS的JSON

    我想使用编写一个应用程序处理 JS http processingjs org 并且我希望能够使用服务器端数据加载它 我还没有编写服务器端 所以我可以使用任何东西 但似乎明显的 AJAX 事情是使用 JSON 将数据上传到页面中 如何从我的
  • Jackson Kotlin - 反序列化 JsonNode

    Problem 我有字符串形式的 JSON 内容 我首先想用 Jackson 以编程方式遍历它 然后 当我有感兴趣的节点时 我想反序列化它 我尝试过的 我已使用 mapper readValue 成功反序列化字符串 但现在我想在 jsonN
  • GSON 将带有日历的对象反序列化为带有 Mongo 日期的 json 并返回

    我有一些实体 其中包含一些日历属性 我想以将它们存储为 GSON 序列化 JSON 中的日期的方式对其进行序列化 因为 Mongo 可以将 date 存储为 new ISODate 我们通常通过使用 ExclusionStrategy 忽略

随机推荐

  • Archlinux 安装、美化、软件入门(一)

    本文章可能更新不及时 xff0c 前往我的博客阅读 xff0c 阅读体验更佳 xff1a https jin dan oier space 前言 本文只适用于 UEFI 引导 本文适用于从 Windows 迁移到 Archlinux 本文作
  • Archlinux 安装、美化、软件入门(二)

    本文章可能更新不及时 xff0c 前往我的博客阅读 xff0c 阅读体验更佳 xff1a https jin dan oier space 0x01 备份数据 使用 微PE 和 DiskGenius 工具进行数据备份和分区克隆 由于在 PE
  • Archlinux 安装、美化、软件入门(三)

    本文章可能更新不及时 xff0c 前往我的博客阅读 xff0c 阅读体验更佳 xff1a https jin dan oier space 0x03 安装系统 从U盘启动 待完善 连接Wi Fi xff08 有线用户直接跳过 xff09 输
  • 如何在笔记本电脑触摸板上进行中键单击

    Most laptop touchpads make it possible to perform a middle click but not all do In some situations you may need to enabl
  • Archlinux 安装、美化、软件入门(五)

    本文章可能更新不及时 xff0c 前往我的博客阅读 xff0c 阅读体验更佳 xff1a https jin dan oier space 0x07 系统美化 GRUB 美化 挑选喜欢的主题并下载 在 Gnome look 网站可以找到 G
  • 系统提示E: Unable to correct problems, you have held broken packages.错误解决

    系统提示E Unable to correct problems you have held broken packages 上网求答 xff0c 发现网上很多人选择用 aptitude xff0c 但是这个一般比较危险 xff0c 并不推
  • Linux kernel升级(详)

    环境 xff1a 系统版本 xff1a CentOS Linux release 7 4 1708 Core 内核版本 xff1a 3 10 0 693 el7 x86 64 内核由3 10升级5 4 升级说明 xff1a Linux Ke
  • stm32之蓝牙模块HC-05使用

    参考资料 xff1a 常用模块 HC 05蓝牙串口通信模块使用详解 xff08 实例 xff1a 手机蓝牙控制STM32单片机 xff09 HC 05蓝牙模块使用教程 HC 05蓝牙模块使用记录 补充与理解 xff1a 套餐有两个板子 一个
  • 2021-09-28->HttpClientUtil 工具包

    span class token keyword package span span class token namespace com span class token punctuation span ruoyi span class
  • 微信通知方法

    span class token comment 微信通知 span span class token function wxMessage span span class token punctuation span userId spa
  • 2021-09-29->微信支付

    接下来看微信支付jsapi接口是怎么调用的 步骤一 xff1a 获取微信支付四大参数 首先要想支持微信支付 必须拥有两个账号 微信公众平台 xff1a 账户 公众APPID xff0c APPSECEPT xff0c 微信商户平台商户ID
  • 20以为加减法

    span class token keyword for span span class token punctuation span span class token keyword int span i span class token
  • coturn服务配置

    COTURN服务配置 准备工作 一台带有公网ip的服务器 xff08 coturn服务部署在具有公网ip的服务器上 xff09 下载coturn wget https span class token operator span span
  • BigDecimal 精确算法 工具类

    BigDecimal a 61 new BigDecimal 101 BigDecimal b 61 new BigDecimal 111 使用compareTo方法比较 注意 xff1a a b均不能为null xff0c 否则会报空指针
  • wsappx_什么是“ wsappx”,为什么在我的PC上运行它?

    wsappx The wsappx process is part of Windows 8 and 10 and you may see it running in the background or even using a signi
  • python获取文件路径、文件夹内所有文件

    python获取文件路径 文件夹内所有文件名字 项目内相对路径 在test12 py内 想获取其所在文件夹的所有的表格文件 windows 第一种方案 34 34 34 获取路径 34 34 34 def list dir file dir
  • MySQL-常用内置函数(字符串、数值、日期、流程)

    字符串函数 xff1a 函数作用CONCAT str1 str2 拼接字符串 xff0c 返回拼接后的字符串LENGTH str 返回字符串字节长度 xff0c 注意是字节 xff0c 中文占3个LEFT str len 返回从最左边截取到
  • MySQL-基础语法DDL、DML、DQL、DCL

    DDL xff1a DDL Data Definition Language 数据库定义语言用来定义数据库对象 xff1a 数据库 xff0c 表 xff0c 列等 关键字 xff1a create drop alter 等 语法 DML语
  • VMware安装虚拟机Mac版

    VMware xff1a 1 不需要分区或重开机就能再同一台PC上使用多种操作系统 2 完全隔离并且保护不同操作系统的环境以及所有软件 资料 3 不同的操作系统之间还能互动操作 4 有复原功能 5 能够设置并且随时修改操作系统的操作环境 下
  • JSON转换工具

    JSON的处理 xff1a JSON JavaScript Object Notation xff1a 是一种轻量级的数据交换格式 它是基于 ECMAScript 规范的一个子集 xff0c 采用完全独立于编程语言的文本格式来存储和表示数据