文章目录
- 前言
- 一、什么是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来进行转换。