Java与Json的解析.转换

java 专栏收录该内容
14 篇文章 0 订阅

1.Json简概

1.1Json的出现

RPC远程调用(​RPC是远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议)时或者提供给外部访问接口,必须有一个两边认可的统一的数据交互格式,需求的硬性要求有了json的出现
在这里插入图片描述

1.2什么是Json

(1).JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
(2).JSON 是轻量级的文本数据交换格式
(3).JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
(4).JSON 具有自我描述性,更易理解
通俗理解Json:
一种数据传输时的文本格式,=>一串字符串,只不过元素会有特殊符号标注而已

1.3创建对象的不同形式

一本书
     书名
     简介
java:

 class Book{
            private String name;
            private String info;
            get/set...
        }
            Book b = new Book();
             b.setName(“数据结构”);
             b.setInfo(“算法+程序”); ...

js:

var b = new Object();
        b.name = "数据结构";
        b.info = "算法+程序";

XML:

 <book>
       <name>数据结构</name> 
       <info>算法+程序</info>
 </book>

Json:

 { 
      "name":"数据结构", 
      "info":"算法+程序" 
  }

一个对象, 由一个大括号表示.{}
    括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为, 大括号中, 包含的是一个个的键值对.)
格式:
    键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
    键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解 析.)
    键值对的值, 可以是JS中的任意类型的数据

1.3.1数组格式

 [元素1,元素2...] //可以互相嵌套

2.Gson(谷歌)

2.1将对象转换为JSON字符串

Gson.toJson(object);

       //1.    创建Gon对象
        Gson g = new Gson();
        //2.    转换
        Book b = new Book("100","数据结构","算法+程序");
        String s = g.toJson(b);
        System.out.println(s);
        //*******************************
       //Gson创建对象只使用一次,用匿名来调用
        Book b = new Book("100","数据结构","算法+程序");
        String s = new Gson().toJson(b);
        System.out.println(s);

运行结果:

{“id”:“100”,“name”:“数据结构”,“info”:“算法+程序”}

2.2将JSON字符串转换为对象

Gson.fromJson(String,object.class);

      //1.    创建Gson对象
        Gson g = new Gson();
        //2.    转换  :  {"id":"100","name":"数据结构","info":"算法+程序"}
        Book b = g.fromJson("{\"id\":\"100\",\"name\":\"数据结构\",\"info\":\"算法+程序\"}", Book.class);
        System.out.println(b.getId()+" "+b.getName()+"  "+b.getInfo());

String:要转换的Json格式字符串
class:要转换成哪种类
运行结果:

100 数据结构 算法+程序

2.2.1Json里嵌套数组(List)

      //1.    创建Gson对象
        Gson g = new Gson();
        //2.    转换  :  {"id":"100","name":"数据结构","info":"程序+算法","page":["昨天已过","今天仍在","明天到来"]}
        HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"数据结构\",\"info\":\"程序+算法\",\"page\":[\"昨天已过\",\"今天仍在\",\"明天到来\"]}", HashMap.class);
        List page = (List) data.get("page");
        System.out.println(page.get(1));

运行结果:

昨天已过
今天仍在
明天到来

3.FastJson(阿里)

3.1将对象转换为JSON字符串

JSON.toJSONString(object);

    Book book = new Book("1002","数据结构","数据结构主要是线性结构和非线性结构");
        //1.    转换
        String json = JSON.toJSONString(book);
        System.out.println(json);

运行结构:

{“id”:“1002”,“info”:“数据结构主要是线性结构和非线性结构”,“name”:“数据结构”}

3.2将JSON字符串转换为对象

JSON.parseObject(String,Object.class);

     //1.    转换  : {"id":"1002","info":"数据结构主要是线性结构和非线性结构","name":"数据结构"}
        Book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"数据结构主要是线性结构和非线性结构\",\"name\":\"数据结构\"}", Book.class);
        System.out.println(book.getId()+"  "+ book.getName()+"  "+ book.getInfo());

String:要转换的Json格式字符串
class:要转换成哪种类

1002 数据结构 数据结构主要是线性结构和非线性结构

3.2.1Json里嵌套数组(List)

    //1.    转换  : ["昨天已过","今天仍在","奔赴明天"]
        List<String> strings = JSON.parseArray("[\"昨天已过\",\"今天仍在\",\"奔赴明天\"]", String.class);
        System.out.println(strings.get(1));

运行结果:

今天仍在

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页

打赏作者

QwoYko.

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值