• 1、Java的json得到我们想要的数据结构


    Java的json得到我们想要的数据结构

    第一步:首先我们要知道json就两种数据结构。

    !!!第一种数据结构:对象用{ }表示

    !!!第二种数据结构:数组用[ ]表示

     

    1. 我们用这个案例来分析一下。首先最外面是一个{ }所以一个对象。

     

    所以我们先new Bar对象。

     

    1. 跟着是一个上面对象的属性的数组了用[ ]表示

     

    所以我们后面用的Arraylist来表示。然后用add加数据。然后将其中的数据set进前面的对象。(这里好好看看别人写法)

     

    1. 后面就是一个对象的属性的对象数组了(这里的数组里只有一个对象而已)所以里面是数组对象

     

    所以我们后面就是一个数组对象。(数组里面是对象)也就是ArrayList

     

    1. 我们就去给这个里面的对象的各个属性赋值了(name很简单,直接先new出Servies)

    然后set就ok了(都是在前面的对象数组里执行)

     

    1. 我们里面还有个对象的属性里一个Interger的数组。所以就是一个new ArrayList。然后再给这个数组add加数据

     

    1. 不要忘记我们这个将这个对象数组的对象用add加进去。也就是add s。(上面也是个数组嘛,只不过他是一个对象数组)

     

    1. 我们再将我们这个数组属性通过bar.setSeries(series);给属性赋值。

     

    1. 最后我们返回这个对象(我们最开始为一个对象嘛)

     

    测试:

     

     

    !!!总结:

    1. 其中我们这里面我们给对象的属性赋值最后是用的set属性这种。(上面我们有给对象数组属性,我们放进去数组。(两个大属性都是数组,只是一个是普通数组,一个是对象数组))
    2. 其中我们给数组加数据用的是add。(印象深刻吧,其中我们给下面的一个对象数组赋值是add(对象s))
    3. 我们数据结构最开始为什么结构,那么我们这个方法就要定义为什么结构(两种结构,要么数组[ ](可以是普通数组,也可以是对象数组),或者对象{ })
    4. 举一反三:我们看下这个json数据结构(饼图的)

     

    这里我直接说逻辑我们怎么写:

    首先我们发现其中最外面是一个[ ]是一个数组。而且是一个对象数组所以我们方法就要定义为ArrayList, 我们再new一个ArrayList这个就是最外层的数组(数组里面是对象(叫对象数组))。然后我们就是去new不同的Pie对象。然后分别对象的赋值方式(set属性)。最后就是给这个数组的属性对象赋值到数组了。(add)(这其中我们有两赋值操作1、里面的对象赋值set,2、外面的数组赋值add(不同的对象))最后返回这个对象数组list

     

    1. package com.example.demo5.controller;
    2. import com.example.demo5.pojo.Bar;
    3. import com.example.demo5.pojo.Series;
    4. import org.springframework.web.bind.annotation.*;
    5. import java.util.*;
    6. /**
    7.  * 对象的属性里面嵌套数组,还有数组里面([]为数组,{}为对象)
    8.  */
    9. @RestController
    10. @RequestMapping("/bar")
    11. public class BarController {
    12.     @GetMapping
    13.     public Bar bar() {
    14.         Bar bar=new Bar();
    15.         ArrayList strings = new ArrayList(){{
    16.             add("苹果");
    17.         }};
    18.         bar.setCategories(strings);
    19.         ArrayList series = new ArrayList(){{
    20.             Series s = new Series();
    21.             s.setName("手机品牌");
    22.             s.setData(new ArrayList() {
    23.                 {
    24.                     add(1);
    25.                     add(2);
    26.                     add(3);
    27.                 }
    28.             });
    29.             add(s);
    30.         }};
    31.         bar.setSeries(series);
    32.         return bar;
    33.     }
    34. }
    35. package com.example.demo5.pojo;
    36. import lombok.Data;
    37. import java.util.List;
    38. import java.util.Map;
    39. @Data
    40. public class Bar {
    41.     private List categories;
    42.     private List series;
    43. }
    44. package com.example.demo5.pojo;
    45. import lombok.Data;
    46. import java.util.List;
    47. @Data
    48. public class Series {
    49.    private String name;
    50.    private List data;
    51. }
    52. package com.example.demo5.controller;
    53. import com.example.demo5.piepojo.Pie;
    54. import org.springframework.web.bind.annotation.GetMapping;
    55. import org.springframework.web.bind.annotation.RequestMapping;
    56. import org.springframework.web.bind.annotation.RestController;
    57. import java.util.ArrayList;
    58. /**
    59.  * 对象数组(本质是个数组(最外面是[]数组))(也就是多个对象)其中[]为数组。{}为对象
    60.  */
    61. @RestController
    62. @RequestMapping("/pie")
    63. public class PieController {
    64.     @GetMapping
    65.     public ArrayList pie(){
    66.         ArrayList list=new ArrayList<>();
    67.         Pie pie = new Pie();
    68.         pie.setName("苹果");
    69.         pie.setValue(108370);
    70.         pie.setUrl("http://www.baidu.com");
    71.         Pie pie2 = new Pie();
    72.         pie2.setName("华为");
    73.         pie2.setValue(2934456);
    74.         pie2.setUrl("http://www.baidu.com");
    75.         list.add(pie);
    76.         list.add(pie2);
    77.         return list;
    78.     }
    79. }
    80. package com.example.demo5.piepojo;
    81. import lombok.Data;
    82. @Data
    83. public class Pie {
    84.     private String name;
    85.     private Integer value;
    86.     private String url;
    87. }

  • 相关阅读:
    字节一面(云原生)
    [构造]Build Permutation Codeforces1713C
    List接口与实现类
    一种高效率低成本的流量回放平台实践
    从裸机开始安装操作系统
    Oracle中的NVL、NVL2、NULLIF、COALESCE函数详解
    如何开发Vite3插件构建Electron开发环境
    LVS: ambighouse pin count in file “xx“ but none has xx pins问题
    黑马笔记---Set系列集合
    vue二维码生成插件qrcodejs2-fix、html生成图片插件html2canvas、自定义打印内容插件print-js的使用及问题总结
  • 原文地址:https://blog.csdn.net/logtcm4/article/details/128009350