栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
  • 一、JSON介绍
    • 1.语法规则
    • 2.Google浏览器插件
  • 二、Java对象和JSON互转
    • 1.Java对象转化为JSON
      • 1.1使用Java类库
      • 1.2使用fastjson
    • 2.JSON转化为Java对象
    • 3.封装JSONUtils工具类(重点)
  • 三、JS对象和JSON互转
    • 1.JSON转JS对象
    • 2.JS对象转JSON

参看:

  • 视频:https://www.bilibili.com/video/BV1Pt411u7R3
  • 菜鸟教程:
    https://www.runoob.com/json/json-tutorial.html
    https://www.runoob.com/w3cnote/fastjson-intro.html
一、JSON介绍

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

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

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

1.语法规则

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

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

数据示例:

{
    "name":"zhangsan",
    "age":21,
    "parents":[
        {
            "role":"father",
            "name":"wanger",
            "age":50
        }
        ,{
            "role":"mother",
            "name":"mazi",
            "age":50
        }
    ]
}
2.Google浏览器插件

FeHelper开发者工具。

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

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

极大的方便了开发人员。


二、Java对象和JSON互转 1.Java对象转化为JSON 1.1使用Java类库

com.fasterxml.jackson.databind.ObjectMapper

Map map = new HashMap<>();
for (int i = 0; i < 5; i++) {
    map.put(i*2+"key",i*i+"val");
}

// 使用java类库 throws JsonProcessingException
String json2 = new ObjectMapper().writevalueAsString(map);
System.out.println(json2);
1.2使用fastjson

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

导入依赖


    com.alibaba
    fastjson
    1.2.78

示例

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

这里为了方便,只提供了fastjson类库中把JSON转化为Java对象的方法。
fastjosn类库里面有很多的方法把json转化为Java对象,下面提供两种常见的方法。

// 1.转化为JSONObject
JSONObject jsonObject = JSONObject.parseObject(json);

// 2.转化为指定的对象 假设已定义User实体类
User user = JSON.parseObject(userJson, User.class);
3.封装JSONUtils工具类(重点)

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

public class JSONUtils {

    
    public static String toJSON(Object obj){
        String json = JSON.toJSONString(obj);
        return json;
    }
    
    
    public static Object JsonToObject(String json){
        JSONObject jsonObject = JSONObject.parseObject(json);
        return jsonObject;
    }
}

三、JS对象和JSON互转

作为一个后端开发人员,不可避免的会涉及到JS对象与JSON数据的互转,下面就提供一些简单的数据互转。

JS对象是Javascript语言封装的数据,JSON是纯字符串。

1.JSON转JS对象

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

var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
2.JS对象转JSON

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

var json = JSON.stringify('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324547.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号