json类型转换对象含有泛型

这篇具有很好参考价值的文章主要介绍了json类型转换对象含有泛型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接受数据的对象1

public class Student<T> {
    /**
     * 学号
     */
    private String studentNumber;

    public String getStudentNumber() {
        return studentNumber;
    }

    public void setStudentNumber(String studentNumber) {
        this.studentNumber = studentNumber;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public List<T> getBooks() {
        return books;
    }

    public void setBooks(List<T> books) {
        this.books = books;
    }

    @Override
    public String toString() {
        return "Student{" +
                "studentNumber='" + studentNumber + '\'' +
                ", studentName='" + studentName + '\'' +
                ", books=" + books +
                '}';
    }

    public Student(String studentNumber, String studentName, List<T> books) {
        this.studentNumber = studentNumber;
        this.studentName = studentName;
        this.books = books;
    }

    /**
     * 学生姓名
     */
    private String studentName;
    private List<T> books;
}

对象1里有list 泛型
因为此时接受的是Book类的数据,所以我转换的时候指定了转换类型为Book类型
接受的其他类型的数据,可以转换的时候指定这个类型就可以了

public class Book {
    private String bookName;
    private String price;

    @Override
    public String toString() {
        return "Book{" +
                "bookName='" + bookName + '\'' +
                ", price='" + price + '\'' +
                ", type='" + type + '\'' +
                '}';
    }

    private String type;

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Book(String bookName, String price, String type) {
        this.bookName = bookName;
        this.price = price;
        this.type = type;
    }
}

实操代码

  String parse="{\n" +
                "  \"books\": [\n" +
                "    {\n" +
                "      \"bookName\": \"Book 1\",\n" +
                "      \"price\": \"19.99\",\n" +
                "      \"type\": \"Fiction\"\n" +
                "    },\n" +
                "    {\n" +
                "      \"bookName\": \"Book 2\",\n" +
                "      \"price\": \"29.99\",\n" +
                "      \"type\": \"Non-fiction\"\n" +
                "    }\n" +
                "  ],\n" +
                "  \"studentName\": \"John Doe\",\n" +
                "  \"studentNumber\": \"123456\"\n" +
                "}";
        JSONObject parseObject=JSONObject.parseObject(parse);

        Student student = JSONObject.parseObject(parse,Student.class);
        System.out.println(student);
        List<Book> books = JSONObject.parseArray(parseObject.get("books").toString(), Book.class);
        student.setBooks(books);
        System.out.println(student);
        Student<Book> student1 = JSONObject.parseObject(parse, new TypeReference<Student<Book>>() {});
        System.out.println(student1);

输出结果

Student{studentNumber='123456', studentName='John Doe', books=[{"price":"19.99","type":"Fiction","bookName":"Book 1"}, {"price":"29.99","type":"Non-fiction","bookName":"Book 2"}]}
Student{studentNumber='123456', studentName='John Doe', books=[Book{bookName='Book 1', price='19.99', type='Fiction'}, Book{bookName='Book 2', price='29.99', type='Non-fiction'}]}
Student{studentNumber='123456', studentName='John Doe', books=[Book{bookName='Book 1', price='19.99', type='Fiction'}, Book{bookName='Book 2', price='29.99', type='Non-fiction'}]}

TypeReference是在运行时指定要转换的类型包括泛型

fastjson的版本

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.76</version>
</dependency>

从而实现指定泛型的类型就可以转换;提高复用性文章来源地址https://www.toymoban.com/news/detail-787333.html

到了这里,关于json类型转换对象含有泛型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java对象类型的转换+instanceOf判断对象类型

    将子类的实例对象定义为父类类型,这种称为 向上转型 ;将父类的实例对象定义为子类类型,这种称为 向下转型 ,向下转型必须使用 显示转换 ,否则编译器会报错。           instanceof操作符,可以用来判断是否一个类实现了某个接口,也可以用来判断一个实例对象是否

    2024年02月08日
    浏览(37)
  • Java入门-java对象与json之间的转换

    使用jackson实现java对象转为Json字符串 引入依赖 对象转json字符串 测试 使用Jackson对象完成转换工作。 json字符串转换对象 测试

    2024年02月22日
    浏览(37)
  • java中对象和JSON格式的转换

    JSON(javaScript Object Notation) 是 一种轻量级的数据交换格式 ,具有良好的可读性和可拓展性。 它采用键值对的方式表示数据,支持基本数据类型和复合数据类型。可用于描述结构化数据和非结构化数据。 结构 对象结构(无序): 无序的对象结构在不同语言中称法不同 对象(

    2024年02月04日
    浏览(29)
  • java对象与Json字符串的相互转换

    文章目录 1.Json对象转换为java 对象 2. Java对象转换JSON 1.Json对象转换为java 对象 导入jackson的相关jar包 创建Jackson核心对象 ObjectMapper 调用ObjectMapper的相关方法进行转换 2. Java对象转换JSON 常见的解析器:Jsonlib,Gson,fastjson,jackson 1.导入jackson的相关jar包 2.创建Jackson核心对象 Obj

    2024年02月09日
    浏览(43)
  • Java 解析多层嵌套json数据及json字符串与对象的相互转换

    本文主要介绍java解析多层嵌套json数据以及字符串与JSON对象之间的相互转换,包括:json字符串的取值,json对象与字符串的相互转换,字符串转化为java对象,字符串转化为javaList列表等。 提示:以下是本篇文章正文内容,下面案例可供参考 数据格式:JSON实际上就是键值对(

    2024年02月04日
    浏览(47)
  • JAVA对象、List、Map和JSON之间的相互转换

    参考文章: Java-json相关转换,JSONObject与实体类/map互转、List/List<map>和JSONArray互转、获取JSONObject中的key value、字符串String转换等 【JSON转换】String与JSONObject、JSONArray、JAVA对象和List 的相互转换

    2024年02月03日
    浏览(47)
  • java将json字符串数据转换为List对象

    方法一:使用Jackson库 pom.xml文件中添加以下依赖: 转换之后直接可以用list操作了 方法二:使用Gson库 res: json格式的数据 方法二比方法一使用起来更简便一点

    2024年02月21日
    浏览(43)
  • 【Java alibaba&hutool】JSON、Map、实体对象间的相互转换

            首先要知道三者的互转关系,可以先将JSON理解成是String类型。这篇博文主要是记录阿里巴巴的JSONObject的两个方法。toJSONString()以及parseObject()方法。顺便巩固Map与实体对象的转换技巧。         综上:这里所学得知识使用fastjson是实现Map -- JSON - Bean。其余由糊涂

    2024年02月07日
    浏览(33)
  • <Java工具类>json字符串、List Map,List 对象转换为相应的JavaBean对象

    依赖: 工具类(直接上代码): 使用场景: (1).使用泛型方法:把json字符串转换为相应的JavaBean对象 ; 一般用于:Controller层: 例如: (2).List Map转换List 对象:如List,将第二个参数传递为Student对象; (3).List 对象转换List Map:

    2024年02月12日
    浏览(50)
  • Java中的List<T>对象与Json格式的字符串的相互转换

    在这里我随便举一个例子 OK,以上就是互相转换的过程 我使用的场景是在订单的订单列表项这里,涉及到数据库相应字段数据的存放与提取,我的做法是,将List转换为Json格式字符串存入,取时再将Json格式转为List

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包