zoukankan      html  css  js  c++  java
  • java与json,一篇就够了

    本示例使用的json包为阿里的fastjson

    首先写三个工具类(seter和geter方法省略,自行补上):

    1 /**
    2  * 屏幕实体类
    3  */
    4 public class Screen {
    5 
    6     private String resolution; // 分辨率
    7     private String size; // 显存大小
    8     
    9 }
    1 /**
    2  * 内存条实体类
    3  */
    4 public class Memory {
    5 
    6     private String size; // 大小
    7     private String brand; // 品牌
    8 
    9 }
     1 /**
     2  * 电脑实体类
     3  */
     4 public class Computer {
     5 
     6     private int id; // id
     7     private String brand; // 品牌
     8     private Double price; // 价格
     9     private Screen screen; // 屏幕
    10     private List<Memory> memory; // 内存条
    11 
    12 }

    测试类,直接上代码:

     1 /**
     2  * 测试类
     3  */
     4 public class T01 {
     5 
     6     public static void main(String[] args) {
     7         // 1. 《自定义对象》转《json》
     8         Computer c1 = getComputer();
     9         JSONObject obj = JSONObject.parseObject(JSONObject.toJSONString(c1));
    10         System.out.println(obj);
    11         System.out.println("---------------------------------------------------------------------------");
    12 
    13         // 2. 《json》转《自定义对象》
    14         String str = obj.toJSONString();
    15         Computer c2 = JSONObject.parseObject(str, Computer.class);
    16         System.out.println(c2.toString());
    17         System.out.println("---------------------------------------------------------------------------");
    18 
    19         // 3. 《列表》转《JSONArray》
    20         List<Computer> computers = getList();
    21         JSONArray ja = JSON.parseObject(JSONArray.toJSONString(computers), JSONArray.class);
    22         System.out.println(ja.toJSONString());
    23         System.out.println("---------------------------------------------------------------------------");
    24 
    25         // 4. 《JSONArray》转《列表》
    26         List<Computer> list = JSONArray.parseArray(ja.toJSONString(), Computer.class);
    27         list.forEach(System.out::println);
    28         System.out.println("---------------------------------------------------------------------------");
    29 
    30         // 5. 《数组》转《JSONArray》
    31         // 用Arrays的asList方法将数组转换成List,然后按照步骤3转换就可以了
    32         List<Memory> ms = Arrays.asList(new Memory[] { new Memory("8G", "金士顿"), new Memory("4G", "三星") });
    33         ms.forEach(System.out::println);
    34         System.out.println("---------------------------------------------------------------------------");
    35 
    36         // 6. 《JSONArray》转《数组》
    37         Computer[] cs = new Computer[list.size()];
    38         list.toArray(cs); // 先按照步骤4将JSONArray转成list,再转成数组
    39         for (Computer computer : cs) {
    40             System.out.println(computer);
    41         }
    42     }
    43 
    44     private static List<Computer> getList() {
    45         List<Memory> ms1 = Arrays.asList(new Memory[] { new Memory("8G", "金士顿"), new Memory("4G", "三星") });
    46         Screen s1 = new Screen("1024*768", "16G");
    47         Computer c1 = new Computer(1, "戴尔", 5678.9, s1, ms1);
    48 
    49         List<Memory> ms2 = Arrays.asList(new Memory[] { new Memory("16G", "惠普"), new Memory("8G", "森海") });
    50         Screen s2 = new Screen("1024*768", "8G");
    51         Computer c2 = new Computer(2, "联想", 1234.5, s2, ms2);
    52 
    53         List<Memory> ms3 = Arrays.asList(new Memory[] { new Memory("32G", "联想"), new Memory("8G", "纽曼") });
    54         Screen s3 = new Screen("1024*768", "16G");
    55         Computer c3 = new Computer(3, "苹果", 4567.8, s3, ms3);
    56 
    57         return Arrays.asList(new Computer[] { c1, c2, c3 });
    58     }
    59 
    60     private static Computer getComputer() {
    61         List<Memory> ms = Arrays.asList(new Memory[] { new Memory("16G", "金士顿"), new Memory("8G", "三星") });
    62         return new Computer(7, "外星人", 12345.689, new Screen("1024*768", "16G"), ms);
    63     }
    64 
    65 }
  • 相关阅读:
    BZOJ 3205 [Apio2013]机器人 ——斯坦纳树
    BZOJ 3782 上学路线 ——动态规划 Lucas定理 中国剩余定理
    HDU 1423 Greatest Common Increasing Subsequence ——动态规划
    BZOJ 3309 DZY Loves Math ——莫比乌斯反演
    POJ 1038 Bugs Integrated, Inc. ——状压DP
    POJ 3693 Maximum repetition substring ——后缀数组
    POJ 2699 The Maximum Number of Strong Kings ——网络流
    POJ 2396 Budget ——有上下界的网络流
    BZOJ 4650 [Noi2016]优秀的拆分 ——后缀数组
    源码安装python
  • 原文地址:https://www.cnblogs.com/Oven5217/p/7553288.html
Copyright © 2011-2022 走看看