文章目录

  • 前言
  • 一、什么是map和json数组以及JSON对象?
    • 1.1什么是map?
    • 1.2什么是json数组?
    • 1.3什么是JSON对象?
  • 二、三者相互转换
    • 2.1引入fastjson的依赖
    • 2.2map转json字符串
    • 2.3map转JSON对象
    • 2.4json字符串转map
    • 2.5json字符串转JSON对象
    • 2.6JSON对象转json字符串
    • 2.7JSON对象转map
  • 总结

前言

在开发中经常需要存储或者传递一些数据,其中用的比较多的就是map和json,这两者之间长的非常像,都属于key和value的形式,二者有何区别与联系?可以相互转换吗?下面就来介绍一下map和json的区别以及二者相互转换的方法。


一、什么是map和json数组以及JSON对象?

1.1什么是map?

map是K-V类型的数据,map有多种实现类,主要有hashmap、linkedhashmap、treemap等。
map实际上是有一个个entry对象组成,entry对象包含key、value、next、hash值,我们可以往key和value中put值,next指向当前entry对象的下一个对象,hash值是根据key值经过计算得到的hash值。

1.2什么是json数组?

json就是一种数据格式,其本质是一个字符串,标准格式为:名称:值对。其中值可以是数字、字符串(带上双引号)、布尔值(true或false)、数组(方括号)、对象(花括号)。
例如:{“id”:001,“name”:“张三”,“Boolens”:true,“Array”:[a,b,c],"object:{}}。 可以通过辅助类库进行解析,获得对应的值。
json在前后端交互中使用较为广泛。

1.3什么是JSON对象?

JSON是js对象标记,在js中使用js对象进行处理,但是在与后端交互过程中需要发送规定的json格式的字符串,所以在给后端发送或接收数据的时候,需要进行JSON对象与json字符串之间的转换。

二、三者相互转换

使用alibaba的fastjson来进行转换。

2.1引入fastjson的依赖

在pom.xml中添加fastjson依赖:

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

2.2map转json字符串

String str = JSON.toJSONString(myMap);

2.3map转JSON对象

JSONObject JSONObject = JSONObject.parseObject(JSON.toJSONString(myMap));

2.4json字符串转map

Map<String,Object> myMap =  JSONObject.parseObject(jsonStr);

2.5json字符串转JSON对象

JSONObject jsonObject = JSONObject.parseObject(jsonStr);

2.6JSON对象转json字符串

String jsonToStr = jsonObject.toJSONString();

2.7JSON对象转map

先讲JSON对象转换成json字符串,再将json字符串转换成map

Map<String,Object> jsonToMap =  JSONObject.parseObject(jsonObject.toJSONString());

总结

后续还可以根据需要,将数据转换成list数组形式等等,都可以使用fastjson来进行转换,也可以使用谷歌的gson来进行转换。

map和json数组以及JSON对象和的区别以及相互转换相关推荐

  1. json 中关于json数组跟json对象的区别

    JSON 是存储和交换文本信息的语法:JSON 文本格式在语法上与创建 JavaScript 对象的代码相同.由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数, ...

  2. 25 Flutter Json数组转换为List对象及Dio请求结果换为List对象

    FlutterJson数组转换为List对象及Dio请求结果换为List对象 1.实体类 class VideoInfo {String body;int id;String title;int us ...

  3. MapString, Object map 集合转 json数组, json数组转list ,按条输出到es

    2019独角兽企业重金招聘Python工程师标准>>> Map<String, Object> map 集合转 json数组, json数组转list ,按条输出到es ...

  4. Qt中的JSON操作_1: JSON的基本知识介绍(JSON格式、JSON数组、JSON对象、应用场景)

    总结放于前: JSON是一种利用JSON数组和JSON对象描述数据内容的数据格式,采用树状的结构,只能有一个父节点,子节点不设限,但父子节点均为JSON对象或者JSON数组. 1. Json 简介 J ...

  5. js form表单转json字符串,json数组转json字符串出现多余的双引号问题解决

    功能介绍         页面展示的是一个用户的基本信息,和该用户对应的几台车辆的信息,车辆的字段属性都一样.然后可以编辑这些信息,再保存到后台.那么就需要考虑将车辆信息转换为json数组类型的字符串 ...

  6. JSON数组,JSON对象,数组的区别

    一.JSON 语法规则: JSON 是存储和交换文本信息的语法 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等, JSON作为一个轻量级的数据格式比xml效率要高,XML ...

  7. jquery中json数组转成对象的方法

    rights=JSON.parse(str); 其中str为后台传过来的json数组的字符串,前台我放到input标签中了然后jquery获取到的是json数组的字符串,然后再js中用上面的语句就可以 ...

  8. JS/Jquery遍历JSON对象、JSON数组、JSON数组字符串、JSON对象字符串

    JS遍历JSON对象 JSON对象 var jsonObj = {"id": 102,"year": "2019-2020","l ...

  9. 创建json数组与json数组渲染到HTML

    json数组格式大家都不陌生,与python的字典一样,简而言之 就是JS当中的数据类型, 那我们如何把数据类型展示出来,模拟数据库SQL语句查询方法获取数据 html: //简单的DIv盒子包裹,命 ...

  10. Mybatis自定义Handler实现Json数组转List对象

    先定义一个ListTypeHandler package com.fiture.marine.utils;import java.sql.CallableStatement; import java. ...

最新文章

  1. Python实战 | 送亲戚,送长辈,月饼可视化大屏来帮忙!
  2. 关于hive中Map join 时大表left join小表的问题
  3. HDR 拍照模式的原理,实现及应用
  4. 自媒体运营要知道的哪些知识
  5. Windows Server 2012活动目录基础配置与应用(新手教程)之4---域用户的基本管理...
  6. android,面向对象
  7. python实现文本编辑器_Python-tkinter实现简单的文本编辑器
  8. 发了篇paper,双非二本的她直博浙大
  9. established 太多_ss -s closed过多,NON_ESTABLISHED告警
  10. 如何用Lucene实现实时搜索--Tripod
  11. 面试题:return和finally执行
  12. java 管理多线程_Java线程管理(一)多线程
  13. 惠普HP LaserJet Pro MFP M126nw 打印机驱动
  14. 小白怎么入门网络安全?看这篇就够啦!
  15. (附源码)springboot宠物管理系统 毕业设计 121654
  16. roms netcdf结构体用法(弃用)
  17. 【自然语言处理(NLP)】基于FNN网络的电影评论情感分析
  18. 函数对象,lamdda表达式,function函数包装,std::bind函数绑定
  19. arcgis新建图层信息复制_arcgis如何创建图层要素 专家详解
  20. JAVA个人博客系统毕业设计,个人博客系统设计与实现,个人博客网页设计毕设作品

热门文章

  1. Shiro - Shiro简介;Shiro与Spring Security区别;Spring Boot集成Shiro
  2. 2021年压力焊工作业考试题库
  3. 微信朋友圈功能测试用例
  4. jpg png jpeg 图片无损压缩工具
  5. 48.网络安全渗透测试—[穷举篇11]—[webshell密码破解(asp/aspx/php)]
  6. Web实训项目--网页设计(附源码)
  7. DirectX12(D3D12)基础教程(十八)—— PBR基础从物理到艺术(中)
  8. UE4官方文档UI学习:3.UMG 创建暂停菜单
  9. java web工程师百度云教程_JavaWeb工程师全套视频教程 (初级+中级+高级) 一共485集 送面试辅导...
  10. JAVA电影院售票系统毕业设计 开题报告