# JSON字符串处理 ##

JSON字符串处理

jackson

Jackson是一个用于处理JSON数据的Java库,它提供了将Java对象转换为JSON格式和将JSON格式转换为Java对象的功能。

  1. 添加依赖:如果你使用Maven,可以在pom.xml中添加以下依赖:

    <dependency>  
        <groupId>com.fasterxml.jackson.core</groupId>  
        <artifactId>jackson-databind</artifactId>  
        <version>2.13.0</version>  
    </dependency>  
    
  2. 创建Java类:定义一个Java类,表示你要序列化或反序列化的对象。例如:

    public class User {  
        private String name;  
        private int age;  
    
        // Getters and Setters  
        public String getName() {  
            return name;  
        }  
    
        public void setName(String name) {  
            this.name = name;  
        }  
    
        public int getAge() {  
            return age;  
        }  
    
        public void setAge(int age) {  
            this.age = age;  
        }  
    }  
    
  3. 序列化Java对象为JSON

    import com.fasterxml.jackson.databind.ObjectMapper;  
    
    public class Main {  
        public static void main(String[] args) throws Exception {  
            ObjectMapper objectMapper = new ObjectMapper();  
            User user = new User();  
            user.setName("Alice");  
            user.setAge(30);  
    
            // 将Java对象转换为JSON字符串  
            String jsonString = objectMapper.writeValueAsString(user);  
            System.out.println(jsonString);  
        }  
    }  
    
  4. 反序列化JSON为Java对象

    public class Main {  
        public static void main(String[] args) throws Exception {  
            ObjectMapper objectMapper = new ObjectMapper();  
            String jsonString = "{\"name\":\"Alice\",\"age\":30}";  
    
            // 将JSON字符串转换为Java对象  
            User user = objectMapper.readValue(jsonString, User.class);  
            System.out.println("Name: " + user.getName() + ", Age: " + user.getAge());  
        }  
    }  
    

Gson

Gson是一个用于处理JSON数据的Java库,由Google开发。它提供了将Java对象转换为JSON格式和将JSON格式转换为Java对象的功能。

  1. 添加依赖:如果你使用Maven,可以在pom.xml中添加以下依赖:

    <dependency>  
        <groupId>com.google.code.gson</groupId>  
        <artifactId>gson</artifactId>  
        <version>2.8.9</version>  
    </dependency>  
    
  2. 创建Java类:定义一个Java类,表示你要序列化或反序列化的对象。例如:

    public class User {  
        private String name;  
        private int age;  
    
        // Getters and Setters  
        public String getName() {  
            return name;  
        }  
    
        public void setName(String name) {  
            this.name = name;  
        }  
    
        public int getAge() {  
            return age;  
        }  
    
        public void setAge(int age) {  
            this.age = age;  
        }  
    }  
    
  3. 序列化Java对象为JSON

    import com.google.gson.Gson;  
    
    public class Main {  
        public static void main(String[] args) {  
            Gson gson = new Gson();  
            User user = new User();  
            user.setName("Alice");  
            user.setAge(30);  
    
            // 将Java对象转换为JSON字符串  
            String jsonString = gson.toJson(user);  
            System.out.println(jsonString);  
        }  
    }  
    
  4. 反序列化JSON为Java对象

    public class Main {  
        public static void main(String[] args) {  
            Gson gson = new Gson();  
            String jsonString = "{\"name\":\"Alice\",\"age\":30}";  
    
            // 将JSON字符串转换为Java对象  
            User user = gson.fromJson(jsonString, User.class);  
            System.out.println("Name: " + user.getName() + ", Age: " + user.getAge());  
        }  
    }  
    

Fastjson

Fastjson 是阿里巴巴提供的一个 Java 语言编写的高性能功能完善的 JSON 库,是目前 Java 语言中最快的JSON 库,可以实现 Java 对象和 JSON 字符串的相互转换。

  1. 导入坐标
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
</dependency>
  1. Java对象转JSON 用 JSON.toJSONString( ) 方法

image-20241010150504854

  1. JSON字符串转JAVA对象 用 JSON.parseObject(JSON字符串 , 对象.class)方法

image-20241010150513749

JSONObject:

JSONObject 是一个键值对的集合,可以看作是一个无序的映射,其中每个键都是字符串,值可以是任何数据类型,包括其他的 JSONObjectJSONArray、字符串、数字、布尔值等。

语法示例(Java):

JSONObject jsonObject = new JSONObject();  
jsonObject.put("name", "Alice");  
jsonObject.put("age", 30);  
jsonObject.put("isStudent", false);  

String jsonString = "{\"name\":\"Alice\", \"age\":30}";  
JSONObject jsonObject = new JSONObject(jsonString);  // 转换为 JSONObject  

//从 JSONObject 转换为普通 Java 对象
Person person = new Person();  
person.setName(jsonObject.getString("name"));  
person.setAge(jsonObject.getInt("age"));  

JSONArray:

JSONArray 是一个有序的值集合,值可以是任何类型,包括其他的 JSONObject、字符串、数字、布尔值等。

语法示例(Java):

JSONArray jsonArray = new JSONArray();  
jsonArray.put("item1");  
jsonArray.put("item2");  
jsonArray.put(3);
//实例
String specValue = "[{"key":"内存","valueList":["8G","16G","32G"]}]"
JSONArray jsonArray = JSON.parseArray(specValue); //将字符串转换为JSONArray


String jsonArrayString = "[\"item1\", \"item2\", 3]";  
JSONArray jsonArray = new JSONArray(jsonArrayString);  // 转换为 JSONArray

JSON 数据结构

  • JSON 对象(JSONObject): 表示一个键值对的集合,通常用大括号 {} 括起来。
  • JSON 数组(JSONArray): 表示一个值的有序集合,通常用方括号 [] 括起来。
posted @   CH_song  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示