首页 > 其他分享 ># JSON字符串处理 ##

# JSON字符串处理 ##

时间:2024-11-05 21:11:13浏览次数:4  
标签:Java String ## age JSON 字符串 public name

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): 表示一个值的有序集合,通常用方括号 [] 括起来。

标签:Java,String,##,age,JSON,字符串,public,name
From: https://www.cnblogs.com/21CHS/p/18528852

相关文章

  • 操作Excel
    EasyExcel导入导出是阿里巴巴开源的一个Excel处理工具,专门用于简化Excel文件的读写操作。1、添加Maven依赖<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.0</version><!--使用最新版本......
  • 2024.11.5 鲜花
    放点屁话大家多交hack。有的人觉得没意义,这也无可厚非,有的人怕被骂,我一直认为这是多余的,但竟然真的有人骂?这是无法理解的,所以发文声讨一下。叠甲:本文仅代表个人观点,可能有过激言论,不针对任何人。不是你们骂交hack的人是什么心态啊。你站在道德制高点上,谴责人家交hack,你首......
  • Minio
    Minio部署MinIO在server01部署MinIO,安装方式采用rpm离线安装,具体步骤可参考官方文档。获取MinIO安装包下载地址如下:https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm,通过以下命令可直接将安装包下载至服务器wgethttps://......
  • JWT工具类
    JWT工具类一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。前两部分需要经过Base64编码,后一部分通过前两部分Base64编码后再加密而成。具体内容可参考官方文档。头部(Header)头部用于描述关于该JWT的最基本的信息载荷(playload)载荷就是存放有效信息的地方......
  • JackSon的忽略注解
    JackSon的忽略注解在本教程中,我将通过一个示例向您展示如何在使用Jackson@JsonIgnore、@JsonIgnoreProperties和@JsonIgnoreType注释将对象序列化为JSON时忽略某些字段。这些注解用于忽略JSON序列化和反序列化中的逻辑属性@JsonIgnore用于忽略序列化和反序列化中使用的......
  • 2024.11.5 闲话
    别人的闲话都推图or歌,我的鲜花啥也没有。我也没啥可推的啊,求图or歌高维前缀和常见的柿子是\(s_{i,j}=s_{i-1,j}+s_{i,j-1}-s_{i-1,j-1}+a_{i,j}\)。但是还可以一维一维求。点此查看代码rep(i,1,n,1)rep(j,1,m,1)a[i][j]+=a[i-1][j];rep(i,1,n,1)rep(j,1,m,1)a[i]......
  • 学考复习
    学考复习……(?)真的是复习吗难道不是啥也没学过吗不定期更新感觉打一些比较熟的东西更容易上手一点码的怎么现在学啥语言上来先学怎么封装并查集洛谷板子n,m=map(int,input().split())classdsu:def__init__(self,n):self.fa=[iforiinrange(n+1)]d......
  • redis缓存常见问题及解决方案
    redis缓存常见问题及解决方案1、缓存穿透缓存穿透:是指查询一个不存在的数据,由于缓存无法命中,将去查询数据库,但是数据库也无此记录,并且出于容错考虑,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就......
  • ubuntu20交换空间
    在Ubuntu中创建交换空间可以通过以下步骤完成: 创建一个用于交换的文件:sudofallocate-l1G/swapfile#创建一个1GB大小的交换文件 修改文件权限,确保只有root用户可以读写该文件:sudochmod600/swapfile 标记文件为交换空间:sudomkswap/swapfil......
  • MySql与Redis
    MySql与Redis1.Redis和MySQL如何保持数据一致性数据同步可以有延时一、延时双删策略在写库前后都进行redis.del(key)操作,并且设定合理的超时时间。publicvoidwrite(Stringkey,Objectdata){redis.delKey(key);//删除redis缓存db.updateData(data)......