JSON一文通透,Java、JS与JSON互转

x33g5p2x  于2021-10-14 转载在 Java  
字(2.6k)|赞(0)|评价(0)|浏览(377)

参看:

  • 视频:https://www.bilibili.com/video/BV1Pt411u7R3
  • 菜鸟教程:https://www.runoob.com/json/json-tutorial.html

一、JSON介绍

(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率(HTTP协传输文本信息)。

JSON常用于前后端交互数据和数据存储,XML常用于配置环境。

JavaScript成为浏览器上事实上的标准语言,这与JSON 的流行也有密切的关系。

1.语法规则

JSON 的语法规则十分简单,优雅完美,总结起来有:

  • 数组(Array)用方括号([])表示(数组里存放多个对象)。
  • 对象(0bject)用大括号({})表示。
  • 名称/值对(name/value)组合成数组和对象。
  • 名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
  • 并列的数据之间用逗号(,)分隔。

数据示例:

  1. {
  2. "name":"zhangsan",
  3. "age":21,
  4. "parents":[
  5. {
  6. "role":"father",
  7. "name":"wanger",
  8. "age":50
  9. }
  10. ,{
  11. "role":"mother",
  12. "name":"mazi",
  13. "age":50
  14. }
  15. ]
  16. }

2.Google浏览器插件

FeHelper开发者工具

建议装上这个JSON插件,浏览器会自动识别json数据,自动格式化,它功能非常强大。

同时,它还支持诸多功能(工具截图):

极大的方便了开发人员。

二、Java对象和JSON互转

1.Java对象转化为JSON

1.1使用Java类库

com.fasterxml.jackson.databind.ObjectMapper

  1. Map<String,String> map = new HashMap<>();
  2. for (int i = 0; i < 5; i++) {
  3. map.put(i*2+"key",i*i+"val");
  4. }
  5. // 使用java类库 throws JsonProcessingException
  6. String json2 = new ObjectMapper().writeValueAsString(map);
  7. System.out.println(json2);

1.2使用fastjson

需要借助这一个依赖包,不知道版本选多少合适,就去maven官网查看一下,【点击我跳转到maven官网】如果不使用maven开发,直接在maven官网下载jar包导入也是可以的,当然不推荐这样做。

导入依赖

  1. <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
  2. <dependency>
  3. <groupId>com.alibaba</groupId>
  4. <artifactId>fastjson</artifactId>
  5. <version>1.2.78</version>
  6. </dependency>

示例

  1. Map<String,String> map = new HashMap<>();
  2. for (int i = 0; i < 5; i++) {
  3. map.put(i*2+"key",i*i+"val");
  4. }
  5. // 测试 Java对象转换为json
  6. String josn1 = JSON.toJSONString(map);
  7. System.out.println(josn1);

2.JSON转化为Java对象

这里为了方便,只提供了fastjson类库中把JSON转化为Java对象的方法

  1. JSONObject jsonObject = JSONObject.parseObject(json);

3.封装JSONUtils工具类(重点)

封装好此工具类后,直接调用即可

  1. public class JSONUtils {
  2. /** * 通过fastjson 把obj转化为json格式数据 * @param obj * @return */
  3. public static String toJSON(Object obj){
  4. String json = JSON.toJSONString(obj);
  5. return json;
  6. }
  7. /** * 通过fastjson 把json转化为object格式数据 * @param json * @return */
  8. public static Object JsonToObject(String json){
  9. JSONObject jsonObject = JSONObject.parseObject(json);
  10. return jsonObject;
  11. }
  12. }

三、JS对象和JSON互转

作为一个后端开发人员,不可避免的会涉及到JS对象与JSON数据的互转,下面就提供一些简单的数据互转。
JS对象是JavaScript语言封装的数据,JSON是纯字符串。

1.JSON转JS对象

格式:JSON.parse(test[,reviver]),示例:

  1. var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');

2.JS对象转JSON

格式:JSON.stringify(value[, replacer[, space]]),示例:

  1. var json = JSON.stringify('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');

相关文章

最新文章

更多