使用fastjson进行json字符串和List的转换

  使用fastjson进行自定义类的列表和字符串转换

  1.环境

  jdk1.8,fastjson

  2.pom.xml

[html] view plain copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.   
  5.     <groupId>co.neutron.json</groupId>  
  6.     <artifactId>fastjson</artifactId>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <packaging>jar</packaging>  
  9.   
  10.     <name>fastjson</name>  
  11.     <url>http://maven.apache.org</url>  
  12.   
  13.     <properties>  
  14.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  15.     </properties>  
  16.   
  17.     <dependencies>  
  18.         <dependency>  
  19.             <groupId>junit</groupId>  
  20.             <artifactId>junit</artifactId>  
  21.             <version>4.8</version>  
  22.             <scope>test</scope>  
  23.         </dependency>  
  24.         <dependency>  
  25.             <groupId>com.alibaba</groupId>  
  26.             <artifactId>fastjson</artifactId>  
  27.             <version>1.2.12</version>  
  28.         </dependency>  
  29.         <dependency>  
  30.             <groupId>org.slf4j</groupId>  
  31.             <artifactId>slf4j-log4j12</artifactId>  
  32.             <version>1.7.2</version>  
  33.         </dependency>  
  34.     </dependencies>  
  35. </project>  

  3.实体类
[html] view plain copy
  1. package co.neutron.json.fastjson.entity;  
  2.   
  3. public class User {  
  4.     private int id;  
  5.     private String name;  
  6.     private int age;  
  7.       
  8.     public User() {  
  9.         super();  
  10.     }  
  11.   
  12.     public User(int id, String name, int age) {  
  13.         super();  
  14.         this.id = id;  
  15.         this.name = name;  
  16.         this.age = age;  
  17.     }  
  18.   
  19.     public int getId() {  
  20.         return id;  
  21.     }  
  22.   
  23.     public void setId(int id) {  
  24.         this.id = id;  
  25.     }  
  26.   
  27.     public String getName() {  
  28.         return name;  
  29.     }  
  30.   
  31.     public void setName(String name) {  
  32.         this.name = name;  
  33.     }  
  34.   
  35.     public int getAge() {  
  36.         return age;  
  37.     }  
  38.   
  39.     public void setAge(int age) {  
  40.         this.age = age;  
  41.     }  
  42.   
  43.     @Override  
  44.     public String toString() {  
  45.         return "User [id=" + id + "name=" + name + "age=" + age + "]";  
  46.     }  
  47.       
  48. }  

  4.测试类

[java] view plain copy
  1. package co.neutron.json.fastjson;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import org.junit.Assert;  
  7. import org.junit.Test;  
  8.   
  9. import com.alibaba.fastjson.JSON;  
  10.   
  11. import co.neutron.json.fastjson.entity.User;  
  12.   
  13. public class ArrayListTest {  
  14.   
  15.     /* 
  16.      * 测试内容如下 
  17.      * 1.将User类型数组转换成json字符串 
  18.      * 2.将json字符串转换成为User数组 
  19.      */  
  20.     @Test  
  21.     public void testArray2StringAndString2List() {  
  22.         User user1 = new User(1"张1"11);  
  23.         User user2 = new User(2"张2"12);  
  24.         User user3 = new User(3"张3"13);  
  25.         User user4 = new User(4"张4"14);  
  26.         User[] users = {user1, user2, user3, user4};  
  27.           
  28.         /*  
  29.          * 将数组转换为Json字符串 
  30.          * result: 
  31.          * [{"age":11,"id":1,"name":"张1"},{"age":12,"id":2,"name":"张2"}, 
  32.          * {"age":13,"id":3,"name":"张3"},{"age":14,"id":4,"name":"张4"}] 
  33.          */  
  34.         String userStr = JSON.toJSONString(users);  
  35.           
  36.         /* 
  37.          * 将Json字符串转换为List 
  38.          * result 
  39.          * User [id=1, name=张1, age=11] 
  40.            User [id=2, name=张2, age=12] 
  41.            User [id=3, name=张3, age=13] 
  42.            User [id=4, name=张4, age=14] 
  43.          */  
  44.         List<User> userList = JSON.parseArray(userStr, User.class);  
  45.         userList.stream().forEach(System.err::println);  
  46.     }  
  47.       
  48.     /** 
  49.      * 测试包装类型的List转换为json字符串 
  50.      */  
  51.     @Test  
  52.     public void testList2String() {  
  53.         List<Long> longs = new ArrayList<Long>();  
  54.         longs.add(1L);  
  55.         longs.add(2L);  
  56.         longs.add(3L);  
  57.         String actual = JSON.toJSONString(longs);  
  58.         Assert.assertEquals("[1,2,3]", actual);  
  59.     }  
  60.   
  61. }  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF应用程序内嵌网页

WPF应用程序内嵌网页 原文:WPF应用程序内嵌网页版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请注明出处。 https://blog.csdn.net/shaynerain/article/details/78160984 WPF内嵌网页&#xff0c;可以将网页本地化&#xff0c;经查找相关资料后&#xff0c;决定采用…

iPhone iPad 各种控件默认高度

iPhone和iPad下各种常见控件的宽度和标准是一样的&#xff0c;所以这里就用iPhone说明。 以下是常见的几种控件的高度。Statusbar,Navigationbar和Tabbar的宽度极其图标大小。 下表是更为详细的参数&#xff0c;包括了Statusbar,Navigationbar、Tabbar、toolbar和Keyboard等等 …

子网/子网掩码原理简介

只有在一个网络号下的计算机之间才能"直接"互通&#xff0c; IP地址是以网络号和主机号来标示网络上的主机的&#xff0c;只有在一个网络号下的计算机之间才能"直接"互通&#xff0c;不同网络号的计算机要通过网关&#xff08;Gateway&#xff09;才能互…

Map.putAll方法——追加另一个Map对象到当前Map集合

该方法用来追加另一个Map对象到当前Map集合对象&#xff0c;它会把另一个Map集合对象中的所有内容添加到当前Map集合对象。 语法 putAll(Map<? extends K,? extends V> m) m&#xff1a;一个Map集合对象。 典型应用 本示例创建一个Map集合对象&#xff0c;为它添加一…

Clipboard.js实现点击自动复制内容的功能

Clipboard.js实现点击自动复制内容的功能 点击非文本框&#xff0c;自动复制&#xff0c;代码如下value:<span id"bar" class"btn" data-clipboard-target"#bar">value</span> <script src"clipboard.min.js"></…

PLSQL的表窗口开启(不小心把PLSQL的表窗口关了,在哪里打开)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 菜单条---工具---浏览器。

Django的视图层

一、视图函数 一个视图函数&#xff0c;简称视图&#xff0c;是一个简单的python函数&#xff0c;它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容&#xff0c;一个重定向&#xff0c;一个404错误&#xff0c;一个XML文档&#xff0c;或者一张图片...是任何东西都…

技术债务真正的代价

无论你是否喜欢把它想成技术债务或是对冲期权&#xff0c;在我们的周围都充斥着糟糕的代码&#xff0c;糟糕的决定&#xff0c;以及这些东西给我们每天的生活带来的影响。但是这些决定所带来的长期影响会是什么&#xff1f;我们真的做了明智的选择吗&#xff1f;Martin Fowler谈…

Java 8 Stream的性能到底如何?

Java 8提供的流的基于Lambda表达式的函数式的操作写法让人感觉很爽&#xff0c;笔者也一直用的很开心&#xff0c;直到看到了Java8 Lambda表达式和流操作如何让你的代码变慢5倍&#xff0c;笔者当时是震惊的&#xff0c;我读书少&#xff0c;你不要骗我。瞬间我似乎为我的Serve…

【linux】使用swap文件恢复非正常关闭的文件

前言 使用vim的时候&#xff0c;文件编辑过程中可能会出现bug&#xff0c;导致非正常关闭。为了保存刚刚修改的内容&#xff0c;需要对文件进行恢复。 操作过程 1.查看目录文件 zrjzrj-ThinkPad-E470:~/work/code/facedetection/src$ ll total 48 drwxrwxr-x 2 xxx xxx 4096 S…

js中比较时间字串大小

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 var start Date.parse($("#str_atBeginDate").val().replace("-","/"));var end Date.parse($("#…

MySQL运维系列 之 如何监控大事务

long transaction背景 大家有没有遇到这样的情况 某个SQL执行特别慢&#xff0c;导致整个transaction一直处于running阶段某个Session的SQL已经执行完了&#xff0c;但是迟迟没有commit&#xff0c;一直处于sleep阶段某个Session处于lock wait阶段&#xff0c;迟迟没有结束以上…

再见腾讯,创业我来了!!!

发现好久没有更新博客了&#xff0c;确实自从进了腾讯以后博客写的寥寥无几&#xff0c;一来是忙&#xff0c;而来是写博客没以前那么有成就感了。但是今天在半夜我又鬼使神差的想写了&#xff0c;因为尼玛欧冠巴萨 VS AC米兰还有将近一个小时&#xff0c;哥实在是等的蛋疼。有…

“docker-app”实用工具分享,大大提高 Compose 文件复用率

本文首发自“Docker公司”公众号&#xff08;ID&#xff1a;docker-cn&#xff09;编译丨小东每周一、三、五 与您不见不散&#xff01; Docker Compose 在开发人员中非常流行&#xff0c;它用来描述应用程序。目前&#xff0c;GitHub 上有超过30万个 Docker Compose 文件。通过…

9.11学习笔记

备注&#xff1a; <span class"kp"> <a href""></a></san>a 是特殊的 要改变a里面的颜色&#xff0c;必须直接给a设置&#xff0c;给a的父级设置不行 属性继承&#xff1a;明明是父级上设置样式&#xff0c;结果后代标签也跟着发生…

bootstrap-validator 验证一个标签同时验证另一个指定标签

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 如图 验证 str_atBeginDate 同时把 str_atTermDate 也作一次验证&#xff1a; 注意 红框中 " value “ 不能少&#xff0c;我之…

solr基本查询和高级查询

查询参数常用&#xff1a; q - 查询字符串&#xff0c;必须的。fl - 指定返回那些字段内容&#xff0c;用逗号或空格分隔多个。start - 返回第一条记录在完整找到结果中的偏移位置&#xff0c;0开始&#xff0c;一般分页用。rows - 指定返回结果最多有多少条记录&#xff0c;配…

送给“苦逼”的IT人系列

送给“苦逼”的IT人系列1&#xff1a;IT人的“钱”景以及收入的两道坎 虽然IT工作五花八门&#xff0c;而且年纪有老有少&#xff0c;但IT人的收入总体还是比较有规律的&#xff0c;很明显的可以看出有两道坎&#xff0c;分别是10W&#xff0c;和30W&#xff0c;当然&#xff…

锐动SDK应用于行车记录仪

方案架构手机端直播与录播功能忠实记录旅途中各种突发事件&#xff0c;还原事实真相&#xff0c;与家人和朋友分享沿途美景&#xff0c;一同感受美妙之旅。强大的视频编辑功能&#xff0c;像编辑图片一样给视频添加各种滤镜&#xff0c;配音&#xff0c;配乐&#xff0c;标题文…

Angular4 存储访问路由栈信息

一、实现方法1.可以通过路由守卫&#xff0c;可以给父级路由添加&#xff0c;若无父级路由&#xff0c;则需要每个路由都需要添加守卫&#xff0c;即每个页面都需要调该方法例如&#xff1a;jdb-app端上的tool.service.ts是每个页面都会调取的方法&#xff0c;可以将监听路由函…