Java转JSON串的几种方式

以下总结一下java转JSON串的几种方式:

1、将java对象转成json串

2、通过JSONObject生成json串

3、通过json字符串生成json串

代码通过阿里的fastjson包实现。

代码如下:

1、Person类,包含Crad的List

package com.doit8.test.jsontest.pojo;

import java.util.ArrayList;

import java.util.List;

public class Person {

private String username;

private String email;

private String sex;

private int age;

private List cardList=new ArrayList();

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public List getCardList() {

return cardList;

}

public void setCardList(List cardList) {

this.cardList = cardList;

}

}

2、Card类

package com.doit8.test.jsontest.pojo;

public class Card {

private String cardName;

private String cardCode;

private Integer cardValue;

public String getCardName() {

return cardName;

}

public void setCardName(String cardName) {

this.cardName = cardName;

}

public String getCardCode() {

return cardCode;

}

public void setCardCode(String cardCode) {

this.cardCode = cardCode;

}

public Integer getCardValue() {

return cardValue;

}

public void setCardValue(Integer cardValue) {

this.cardValue = cardValue;

}

}

3、JSON处理测试类

package com.doit8.test.jsontest;

import java.util.ArrayList;

import java.util.List;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

import com.doit8.test.jsontest.pojo.Card;

import com.doit8.test.jsontest.pojo.Person;

/** 

* JSON转换 

*/

 

public class App 

{

public static void main( String[] args )

{

//1。通过对象生成JSON串,对象里包含对象数组转成JSON串。  

Person person=new Person();

person.setUsername("xiejava");

person.setSex("man");

person.setAge(38);

person.setEmail("xiejava@ishareread.com");

Card card1=new Card();

card1.setCardName("bankCard1");

card1.setCardCode("888888888");

card1.setCardValue(99999999);

Card card2=new Card();

card2.setCardName("bankCard1");

card2.setCardCode("999999999");

card2.setCardValue(222222222);

//对象数组  

List cards=new ArrayList();

cards.add(card1);

cards.add(card2);

person.setCardList(cards);

String json = JSON.toJSON(person).toString();

System.out.println(json);

//2.通过JSON对象生成JSON串  

JSONObject jObject=new JSONObject();

jObject.put("username", "xiejava");

jObject.put("sex", "man");

jObject.put("age", 38);

jObject.put("email", "xiejava@ishareread.com");

//通过JSONArray包装对象数组  

JSONArray jArray=new JSONArray();

jArray.addAll(cards);

jObject.put("cardList", jArray);

String json2=jObject.toJSONString();

System.out.println(json2);

//3.通过JSON对象生成JSON串  

JSONObject jObject2=new JSONObject();

jObject2.put("username", "xiejava");

jObject2.put("sex", "man");

jObject2.put("age", 38);

jObject2.put("email", "xiejava@ishareread.com");

//构造JSON字符串  

String cardjsonStr1="{\"cardName\":\"bankCard1\",\"cardCode\":\"888888888\",\"cardValue\":99999999}";

String cardjsonStr2="{\"cardName\":\"bankCard2\",\"cardCode\":\"999999999\",\"cardValue\":222222222}";

JSON.parseObject(cardjsonStr1);

JSONArray jArray2=new JSONArray();

//将JSON字符串转成JSON对象,加入到JSONArray,[注意一定要用JSON.parseObject()方法转换成JSON对象,否则还是字符串,转成JSON串的时候会带双引号。]  

jArray2.add(JSON.parseObject(cardjsonStr1));

jArray2.add(JSON.parseObject(cardjsonStr2));

jObject2.put("cardList", jArray2);

String json3=jObject2.toJSONString();

System.out.println(json3);

}

}

pom.xml中引入fastjson包

 

com.alibabagroupId>

fastjsonartifactId>

1.2.15version>

dependency>

运行结果

{"cardList":[{"cardName":"bankCard1","cardCode":"888888888","cardValue":99999999},{"cardName":"bankCard1","cardCode":"999999999","cardValue":222222222}],"sex":"man","age":38,"email":"xiejava@ishareread.com","username":"xiejava"}  

{"cardList":[{"cardCode":"888888888","cardName":"bankCard1","cardValue":99999999},{"cardCode":"999999999","cardName":"bankCard1","cardValue":222222222}],"sex":"man","age":38,"email":"xiejava@ishareread.com","username":"xiejava"}  

{"cardList":[{"cardName":"bankCard1","cardCode":"888888888","cardValue":99999999},{"cardName":"bankCard2","cardCode":"999999999","cardValue":222222222}],"sex":"man","age":38,"email":"xiejava@ishareread.com","username":"xiejava"}

 为了让学习变得轻松、高效,今天给大家免费分享一套Java教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

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

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

相关文章

exfat最佳单元大小_双动圈四喇叭单元的头戴式耳机,DACOM HF002上手体验

蓝牙耳机近两年发展迅速,特别是入耳式蓝牙耳机的发展,轻便的设计无论是携带还使用都非常方便,但入耳式耳机有一个比较大的通病是容易使耳朵胀痛,并且由于耳机单元的过小,先天地影响着耳机的声音,虽然有顶级…

学Java方向的学生如何找实习的工作?

是这个大三的学生,是学Java方向的,我想知道,实习的工作好找吗?应该会什么?目前会SE、EE,数据库MySQL、 sqlserver。sql语句也会,C语言,c也会一点。可以用框架做增删改查。这样够了吗…

e3d教程做logo教程_看了教程还是不会做平面设计?关键的方法给你揭秘!附450集教程...

设计没有捷径,正确的学习方法简单总结起来就是多看、多做、多想,不断重复。【450集教程领取方式见文末】平面设计、PS、Photoshop、PS教程、PS字体、PS笔刷、PS软件、PS插件、PS2020、PS技巧多看,是提高审美的有效手段,优秀的设计…

python运维常用模块-运维常用python库模块

sutil: 是一个跨平台库(https://github.com/giampaolo/psutil)能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的…

你知道Java的四种引用类型吗

在Java中提供了四个级别的引用:强引用,软引用,弱引用和虚引用。在这四个引用类型中,只有强引用FinalReference类是包内可见,其他三种引用类型均为public,可以在应用程序中直接使用。引用类型的类结构如图所…

k8s学习 — (DevOps实践)第十三章 DevOps 环境搭建

k8s学习 — (DevOps实践)第十三章 DevOps 环境搭建 学习资料1 Gitlab1.1 安装 Gitlab1.2 页面配置1.3 配置 Secret1.4 为项目配置 Webhook1.5 卸载 2 Harbor2.1 安装 Harbor2.1 配置 Secret 3 SonarQube3.1 安装 SonarQube3.2 生成服务 token3.3 创建 We…

电脑打字学习_寒假就这样做!即不让孩子烦,还能让他有进步,开学就能迅速进入学习状态!...

部编本下册教材寒假预习可点击查看:六年级 五年级 四年级 三年级 二年级 一年级转眼间,一学期的学习又结束了,寒假模式正式开启。在这一个多月的寒假期间,孩子离开了学习,摆脱了老师的教育,如果家长再…

sap 供应商表_SAP系统玩阴的?

SAP系统玩阴的?近日和项目上的ABAP开发顾问一起弄一个自开发的报表。其中某个栏位的取值需要从批次主数据里抓取到供应商代码,然后根据供应商代码取到供应商名称等。为此笔者需要备功能说明书,在说明书里笔者需要将具体取值逻辑写清楚。要取到…

Java设计模式:单例模式

设计模式(Design Pattern):是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。 目的:使用设计模式是为了可重用性代码,让代码更容易被他人理解,保证代…

滤波器的优点_声光可调谐滤波器

目前声光可调谐滤波器主要应用于光通信领域。它具有调谐速度快,可调谐范围宽、插入损耗低和通道驱动功率低等优点,并且可以实现多波长同时选择,因此在未来的波分复用网络中极有应用潜力。此外,声光可调谐滤波器还常用于半导体激光…

想学习大数据的同学一定要学习Java吗

一、学习大数据,一定要学习java吗? 首先,大家要清楚一点,学习Java的目的是什么,Java它本身是一门计算机编程语言,而进入大数据的学习,无论你有何基础,是零基础还是有过相关的学习经验&#xf…

qt多线程服务器_常见网络服务器并发模型

点击蓝字 关注我们近些年,随着互联网的大发展,高并发服务器技术也快速进步,从简单的循环服务器模型处理少量网络并发请求,演进到解决C10K,C10M问题的高并发服务器模型。本文主要以TCP为例,总结了几种常见的…

如何在vb.net中取得两时间的毫秒差_科技品牌软文营销如何写出一篇爆文?

随着互联网的发展,尤其是移动互联网的发展,让营销方式从传统的线下电视报纸广告逐渐转移到线上的软文营销。软文营销因为其快捷,方便,性价比高的特点受到了很多品牌的追捧。文章是软文营销的前提,如何写好一篇好的文章…

Java开发领域的大牛有哪些

Java开发领域的大牛有哪些 1、James Gosling 在他12岁的时候,他已能设计电子游戏机,帮忙邻居修理收割机。大学时期在天文系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学…

共阴极数码管编码表_数码管循环点亮的PLC控制——基本逻辑指令的应用

数码管循环点亮的PLC控制,我们运用日本三菱FX2N-48MR-001(FX2N-48MR-001是日本三菱公司的可编程控制器(PLC),继电器输出及输入24点,输出24点.FX2N是FX系列中功能最强、速度最高的微型PLC,内置用户存储器8Kb,可扩展到16K步,最大可扩…

高效Java第六条消除过期的对象引用无意识的对象保持

问题的引出 这段程序有一个“内存泄露”,随着GC活动的增加,或者由于内存占用的不断增加,程序性能降低会逐渐表现出来。在极端的情况下,这种内存泄露会导致磁盘交换,甚至导致程序失败(OutOfMemoryError),但是…

gentos 执行sh文件_linux定时自动清理日志文件

现有一个应用系统,应用日志记录的内容很多,经常造成存储空间不够,需要手工去删除早期的日志文件来释放空间。应用的日志文件命名如下,固定前后缀加上日期和小时:为了避免手工删除日志,考虑通过写shell脚本来…

java编程思想泛型对混入的详细探讨

混入的概念 把多个类的能力混合在一起产生一个能代表所有混入类的类型的类。 the fundamental concept is that of mixing in capabilities from multiple classes in order to produce a resulting class that represents all the types of the mixins. 混入就是把存在的多…

linux rm 命令删除文件恢复_linux文件处理命令之rm常用方法介绍

命令名称:rm命令英文原意:remove命令所在路径:/bin/rm执行权限:所有用户语法:rm -r [文件或目录] -r 删除目录功能描述:删除文件mv是删除文件的命令,使用时可以指定文件(包括觉得路径/相对路径)的存放位置1…

python中math模块函数_Python常用的一些内建函数和math模块函数

一:Python内建函数 1 #abs取绝对值 2 num -10 3 print(abs(num))4 5 #max 求最大值 6 print(max(6, 9, 2, 12, 8))7 8 #min求最小值 9 print(min(-1, 2, 5, 0, 7))10 11 print(min([1, 3, 7, 0, 2]))12 13 #round 计算一个数值的四舍五入的 14 15 pi 3.14 16 prin…