• JSON使用


    1.JSON的概述

    JSON在线解析及格式化验证 - JSON.cn 

    这是json在线解析  网站  好使!!

    1.什么是JSON

     JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
        JSON采用完全独立于语言的文本格式,就是说不同的编程语言JSON数据是一致的。JS原生支持JSON.

    2.为什么会有JSON

    在JSON出现之前,大家一直用XML来传递数据。因为XML是一种纯文本格式,所以它适合在网络上交换数据。
        XML本身不算复杂,但是,加上DTD、XSD、XPath、XSLT等一大堆复杂的规范以后,
        任何正常的软件开发人员碰到XML都会感觉头大了,最后大家发现,即使你努力钻研几个月,
        也未必搞得清楚XML的规范。于是更简洁清晰的JSON格式应运而生。风靡全球。

    3.JSON这种格式的特点

        1:纯文本形式并具备简洁和清晰的层次结构。
        2: JSON 具有“自我描述性”,易于人阅读和编写。
        3:具有层级结构,易于机器解析和生成,可以有效地提升网络传输效率。
        4:可以在js中直接解析。 

     2.前端中的JSON

    前端js 自动可以解析  JSON  这里就不挨个写了!

    JSON有几种存储格式?
        两种,一种是对象形式存储数据,一种是数组形式存储数据。

    1.对象格式:

            对象格式: {  "k1":obj,"k2":obj  }
            举例: { "name":"jack", "age":18, "wife":null }

            语法:

                1.对象可以包含多个 key/value(键/值)对。
                2.key 必须是字符串,value可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
                3.key 和 value 中使用冒号(:)分割。
                4.每个 key/value 对使用逗号(,)分割。

    2.JSON数组格式:

            数组格式:[obj,obj,obj...]
            举例: [ "tjtc", "it", "czzxxy" ]
            语法规则: 
               
     1.JSON 数组在中括号中书写。
                2.JSON 中数组value值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。。
                3.JSON数组可以使用jQuery语法完成遍历。

    注意:

     学习前面两个基本格式,对应的值用value来表示,那么value可以是哪些具体的类型呢?
        string,number,object,array,true,false,null
    举例:
        {"name":"红楼梦","alias":"石头记","author":[ "曹雪芹", "程伟元", "高鹗" ]}

     3.后端如何封装JSON数据的

    注意:

       1.java本身没有json对象及数组格式。但是支持字符串,而JSON本质就是一串特殊的字符串。
        2.所以我们只需把JAVA 对象或集合转换成 JSON 格式的字符串,传递给前端,前端就可以解析了。
        3同样如果前端传递json字符串给Java,我们只需把JSON格式字符串转换成相应Java对象即可。

    如何完成Java中的对象和JSON字符串的相互转换呢?
        我们可以采用JSON 的转换工具来完成。
            
    JSON转换工具是什么,有何作用?
        json的转换工具是通过java封装好的一些jar工具包,完成java对象与json格式的字符串的相互转换。

    目前企业中最为流行的是FastJson,我们选择FastJson来完成解析。

     1.把对象装换成JSON字符串

    1. import com.alibaba.fastjson.JSON;
    2. import com.itheima.pojo.User;
    3. import org.junit.Test;
    4. import java.util.ArrayList;
    5. import java.util.HashMap;
    6. import java.util.Map;
    7. /*
    8. !json个java对象的相互转换!
    9. java对象--json
    10. json--java对象
    11. 要求咱们的java对象 必须有setget方法
    12. 还需要导入jar包--json转换包
    13. 导入依赖之后
    14. 学习api
    15. java对象--json
    16. JSON.toJSONString(对象) 返回json文本
    17. json--java对象
    18. 对象的类型 parseObject(json字符串,对象的类型)
    19. User User.class
    20. List<对象类型> parseArray(json字符串,集合中对象的类型)
    21. List User.class
    22. */
    23. public class Object2Json {
    24. // javabean--json
    25. @Test
    26. public void javaObject2Json(){
    27. User user = new User("张三",19,"男");
    28. //在java是一个对象
    29. // 如果前端需要这个对象 我们需要把它变成json格式
    30. //手动转换吗?借助工具包 完成 对象与json的转换
    31. // {"name":"张三","age",19,"sex":"男"}
    32. String jsonString = JSON.toJSONString(user);
    33. System.out.println(jsonString);
    34. // {"age":19,"name":"张三","sex":"男"}
    35. }
    36. // list--json
    37. @Test
    38. public void list2Json(){
    39. ArrayList list = new ArrayList<>();
    40. list.add(new User("张三",19,"男"));
    41. list.add(new User("李四",18,"女"));
    42. //把list--json
    43. String jsonString = JSON.toJSONString(list);
    44. System.out.println(jsonString);
    45. // [{"age":19,"name":"张三","sex":"男"},{"age":18,"name":"李四","sex":"女"}]
    46. }
    47. // map--json
    48. @Test
    49. public void map2Json(){
    50. Map map = new HashMap<>();
    51. map.put("王宝强","贾乃亮");
    52. map.put("马金莲","李小鹿");
    53. // map转换成json格式
    54. String jsonString = JSON.toJSONString(map);
    55. System.out.println(jsonString);
    56. // {"王宝强":"贾乃亮","马金莲":"李小鹿"}
    57. }
    58. @Test
    59. public void map3Json(){
    60. Map map = new HashMap<>();
    61. User user1 = new User("张三",19,"男");
    62. User user2 = new User("李四",18,"女");
    63. map.put("u001",user1);
    64. map.put("u002",user2);
    65. // map转换成json格式
    66. String jsonString = JSON.toJSONString(map);
    67. System.out.println(jsonString);
    68. // {"u002":{"age":18,"name":"李四","sex":"女"},"u001":{"age":19,"name":"张三","sex":"男"}}
    69. }
    70. }

    JSON.toJSONString(对象)  //返回 json 字符串

    2.JSON字符串  转 对象

    1. package com.itheima.test;
    2. import com.alibaba.fastjson.JSON;
    3. import com.itheima.pojo.User;
    4. import org.junit.Test;
    5. import java.util.ArrayList;
    6. import java.util.HashMap;
    7. import java.util.List;
    8. import java.util.Map;
    9. /*
    10. !json个java对象的相互转换!
    11. java对象--json
    12. json--java对象
    13. 要求咱们的java对象 必须有setget方法
    14. 还需要导入jar包--json转换包
    15. 导入依赖之后
    16. 学习api
    17. java对象--json
    18. JSON.toJSONString(对象) 返回json文本
    19. json--java对象
    20. 对象的类型 parseObject(json字符串,对象的类型)
    21. User User.class
    22. List<对象类型> parseArray(json字符串,集合中对象的类型)
    23. List User.class
    24. */
    25. public class Json2Object {
    26. // json--javabean
    27. @Test
    28. public void javaObject2Json(){
    29. // {"age":19,"name":"张三","sex":"男"}
    30. String jsons = "{\"age\":19,\"name\":\"张三\",\"sex\":\"男\"}";
    31. //json变成 user类型对象
    32. //通过 解析方法 把一个json串解析成javabean对象
    33. User user = JSON.parseObject(jsons, User.class);
    34. System.out.println(user);
    35. }
    36. // json--list
    37. @Test
    38. public void list2Json(){
    39. //把json--list
    40. String json = "[{\"age\":19,\"name\":\"张三\",\"sex\":\"男\"},{\"age\":18,\"name\":\"李四\",\"sex\":\"女\"}]";
    41. // [{"age":19,"name":"张三","sex":"男"},{"age":18,"name":"李四","sex":"女"}]
    42. // List list = JSON.parseObject(json, List.class);
    43. // //注意 没有泛型说明 里面的对象按照object对象接受的
    44. // for (Object o : list) {
    45. // System.out.println((User)o);
    46. // }
    47. List userList = JSON.parseArray(json, User.class);
    48. for (User user : userList) {
    49. System.out.println(user);
    50. }
    51. }
    52. // json--map
    53. @Test
    54. public void map2Json(){
    55. String json = "{\"王宝强\":\"贾乃亮\",\"马金莲\":\"李小鹿\"}";
    56. // {"王宝强":"贾乃亮","马金莲":"李小鹿"}
    57. Map map = JSON.parseObject(json, Map.class);
    58. System.out.println(map);
    59. }
    60. @Test
    61. public void map3Json(){
    62. String json = "{\"u002\":{\"age\":18,\"name\":\"李四\",\"sex\":\"女\"},\"u001\":{\"age\":19,\"name\":\"张三\",\"sex\":\"男\"}}";
    63. // {"u002":{"age":18,"name":"李四","sex":"女"},"u001":{"age":19,"name":"张三","sex":"男"}}
    64. Map map = JSON.parseObject(json, Map.class);
    65. Object u002 = map.get("u002");
    66. System.out.println(map);
    67. }
    68. }

    java对象---json格式数据怎么转换
         String JSON.toJSONString(对象)方法 完成转换。
          只不过我们对象 转换之后 是{} 单列集合数组转换之后[]  map集合转换之后{}
    json对象---java对象 
         JSON.parseObject(json文本,你要转成对象类型)
         我们的基本javabean以及map集合适合这个转换,单列集合也可以使用
         如果是单列集合 想转换成对应的元素javabean
         需要使用
         JSON.parseArray(json文本,集合中类型)

  • 相关阅读:
    Momentum Contrast for Unsupervised Visual Representation Learning 论文学习
    《LC刷题总结》——回溯
    ES全文检索支持繁简和IK分词检索
    机器学习-有监督算法-决策树和支持向量机
    数据库模式笔记 --- 如何在开发中选择合适的数据库+关系型数据库是谁发明的?
    VR全景技术在城市园区发展中有哪些应用与帮助
    Vue的个人笔记
    贪吃蛇小游戏
    基于VB6的颜色取色器 - 开源研究系列文章 - 个人小作品
    微信小程序里边怎么添加付费视频_怎么做付费视频小程序
  • 原文地址:https://blog.csdn.net/weixin_50769390/article/details/127719002