在Java中进行JSON转换的常用库

由于Java(最新LTS版本是Java11)内置中没有支持JSON转换和解析的库, 我们需要使用第三方库.

常用的库有谷歌的Gson, 阿里的Fastjson, 谷歌开发人员fangyidong的json-simple等.

这是它们的github链接, 可以在download里下载最新的jar包:

其使用方法都大同小异, 在国内开发用得比较多的是Fastjson, 以下是它的使用简单举例:

package net.csdn.blog.java.json;

import com.alibaba.fastjson.JSON;
import java.util.List;

/**
 * 阿里巴巴fastjson使用简单举例
 */
public class FastjsonExamples {

    public static void main(String[] args) {
        Book book = new Book(12345,"书名","简介");

        //举例1:如何把对象转换为JSON
        String json = JSON.toJSONString(book);
        System.out.println(json); //输出:{"id":12345,"info":"简介","name":"书名"}

        //举例2:如何把JSON转换为对象
        //假设有JSON字符串: {"id":100,"name":"唐诗三百首","info":"文化学习"}
        Book newBook = JSON.parseObject("{\"id\":100,\"name\":\"唐诗三百首\",\"info\":\"文化学习\"}", Book.class);
        System.out.println(newBook.getName()); //输出:唐诗三百首

        //举例3:如何把JSON转换为集合
        //假设有JSON字符串:["张三","李四","王二"]
        List<String> strings = JSON.parseArray("[\"张三\",\"李四\",\"王二\"]", String.class);
        for (String s: strings) {
            System.out.print(s + " "); //输出:张三 李四 王二
        }
    }

    static class Book {
        private int id;
        private String name;
        private String info;

        public Book() { }

        public Book(int id, String name, String info) {
            this.id = id;
            this.name = name;
            this.info = info;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getInfo() {
            return info;
        }

        public void setInfo(String info) {
            this.info = info;
        }

        @Override
        public String toString() {
            return "Book{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", info='" + info + '\'' +
                    '}';
        }
    }
}

注意事项:

1) 在Java中JSON的标签必须加双引号, 比如 {"id":12345,"name":"书名"}, 如果id和name不加双引号的话会解析出错

2) 如果用getClass()方法去查看上面的JSON.parseArray()的结果, 会发现是一个ArrayList.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaJSON转换注解是为了简化对象与JSON之间的转换而设计的一种技术。通常情况下,我们需要将Java对象转换JSON字符串进行传输或存储,或者将JSON字符串转换Java对象进行操作。使用JSON转换注解可以帮助我们在转换过程减少代码编写量,提高代码的可读性和可维护性。 在Java常用JSON转换注解有以下几种: 1. @JsonProperty:用于指定Java对象字段与JSON属性之间的映射关系。可以通过给字段添加@JsonProperty注解,并指定对应的属性名称,实现字段与属性的映射转换。 2. @JsonIgnore:用于忽略某个字段或方法的转换。通过将@JsonIgnore注解添加到字段或方法上,可以在转换过程忽略该字段或方法,不进行序列化或反序列化。 3. @JsonFormat:用于指定字段的日期、时间等格式化方式。通过添加@JsonFormat注解,并指定对应的格式化规则,可以在转换过程将日期、时间等字段按照指定的格式进行转换。 4. @JsonInclude:用于控制字段的空值处理方式。通过添加@JsonInclude注解,并指定对应的处理方式,可以在转换过程控制字段的空值是否进行转换,以及转换后的数值。 5. @JsonDeserialize和@JsonSerialize:分别用于指定字段的反序列化和序列化方式。通过添加@JsonDeserialize注解指定反序列化的方式,或者添加@JsonSerialize注解指定序列化的方式,可以在转换过程控制字段的转换方式和规则。 通过使用这些JSON转换注解,我们可以更方便、高效地实现Java对象与JSON字符串之间的转换,减少手动编写转换代码的工作量,并提高代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值