Java中Json处理(22.02.14)

358 阅读1分钟

Java中Json处理(22.02.14)

Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。

下面是几个常用的 JSON 解析类库:

  • Gson: 谷歌开发的 JSON 库,功能十分全面。
  • FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。
  • Jackson: 社区十分活跃且更新速度很快。

FastJson方法介绍

这里以阿里的FastJson为例

方法作用
JSON.parseObject()从字符串解析 JSON 对象
JSON.parseArray()从字符串解析 JSON 数组
JSON.toJSONString(obj/array)将 JSON 对象或 JSON 数组转化为字符串
//从字符串解析JSON对象
JSONObject obj = JSON.parseObject("{"runoob":"菜鸟教程"}");
//从字符串解析JSON数组
JSONArray arr = JSON.parseArray("["菜鸟教程","RUNOOB"]\n");
//将JSON对象转化为字符串
String objStr = JSON.toJSONString(obj);
//将JSON数组转化为字符串
String arrStr = JSON.toJSONString(arr);

DemoJSON编码与解码

  1. 导入依赖

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.47</version>
    </dependency>
    
  2. Json编码与解码

    • 编码: Java变量 =>JSON格式的编码过程

      public void testJson() {
          JSONObject object = new JSONObject();
          //string
          object.put("string","string");
          //int
          object.put("int",2);
          //boolean
          object.put("boolean",true);
          //array
          List<Integer> integers = Arrays.asList(1,2,3);
          object.put("list",integers);
          //null
          object.put("null",null);
          
          System.out.println(object);
      }
      
    • 解码: Json对象 =>Java变量

      public void testJson2() {
      •
        JSONObject object = JSONObject
            .parseObject("{"boolean":true,"string":"string","list":[1,2,3],"int":2}");
        //string
        String s = object.getString("string");
        System.out.println(s);
        //int
        int i = object.getIntValue("int");
        System.out.println(i);
        //boolean
        boolean b = object.getBooleanValue("boolean");
        System.out.println(b);
        //list
        List<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class);
        integers.forEach(System.out::println);
        //null
        System.out.println(object.getString("null"));
      •
      }
      

注意:

在使用时的导包问题

import net.sf.json.JSONObject;  // 错误的包import com.alibaba.fastjson.JSONObject;  //正确的包

\