热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

码农小汪之Alibabafastjson的基本使用

fastjson我也是最近才了解这个玩意的,需求就是返回json字符串给我么你的客户端,比较多,自己写很麻烦。以前没有见过,

fastjson我也是最近才了解这个玩意的,需求就是返回json字符串给我么你的客户端,比较多,自己写很麻烦。以前没有见过,还傻不拉几的使用,感觉使用了之后,帅呆了,非常的棒。对于我们序列话一个Javabean之类的数据,真的不错哦,反应挺舒服的。


我们首先看我的一个使用吧,这个看起来更舒服一点
第一个代码是我们主要的封装,里面的一个List又封装了一个Javabean

package com.hdu.bean;import java.io.Serializable;
import java.util.List;public class RespondMessage implements Serializable{public RespondMessage() {super();// TODO Auto-generated constructor stub}private int status;private String message;private List result;public int getStatus() {return status;}public void setStatus(int status) {this.status = status;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public List getResult() {return result;}public void setResult(List result) {this.result = result;}}

List中的JavaBean的格式

package com.hdu.bean;import java.io.Serializable;
/*** * @author JetWang**/public class UserInfoBase implements Serializable{public UserInfoBase() {super();// TODO Auto-generated constructor stub}private String username;private String tell;private String email;private String remark;private int id;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getTell() {return tell;}public void setTell(String tell) {this.tell = tell;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}}

这个是我们够造的数据,让后向里面添加数据就行了,数据添加没有贴出来。

这个下面的是为了让为空的属性也输出来
RespondMessage respondMessage = new RespondMessage();
jsonResult = JSON.toJSONString(respondMessage,SerializerFeature.PrettyFormat,SerializerFeature.WriteMapNullValue,SerializerFeature.WriteDateUseDateFormat);log.info(jsonResult);

我们来看哈效果,你看就是一句话的事情,把我们的东西全部输出来
这里写图片描述
看起来是不是特别的帅呢?而切他还可以还原一个javabean呢!真的不错,怪说不得,我们的阿里爸爸,把他说成fast….

说了这么多,还没有切入到我们的正题上面去哦,对哦,今天我没把jar包放在lib目录下,害的我找了半天的错误!放在用户目录下面并没有加载进去哦!诶诶



fastjson的简介:
Fastjson是一个Java语言编写的高性能功能完善的JSON库。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一。支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。支持JDK 5、JDK 6、Android、阿里云手机等环境。
fastJson能够生成和解析的数据类型有哪些呢?


  • JavaBean
  • List
  • List
  • List
    分别对应我们的生成json字符串和解析字符串

  • 生成json字符串
    (JavaBean,List,List,List)

  • 解析json字符串为四种类型
    1。JavaBean

Person person = JSON.parseObject(jsonString, Person.class);

2。 List

List listPerson =JSON.parseArray(jsonString, Person.class);

3。 List

List<String> listString &#61; JSON.parseArray(jsonString, String.class);

4。List>

List<Map<String, Object>> listMap &#61; JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});

下面来个简单的Jsonobject的解析

package com.hdu.Json;import java.util.Map;import com.alibaba.fastjson.JSONObject;public class JsonDemo {public static void main(String[] args) {String testString &#61; "{\"体育\":\"姚明\",\"数学\":\"付老师\",\"英语\":\"一般般\",\"生活\":\"平常话\"}";for (int i &#61; 0; i <10; i&#43;&#43;) {JSONObject jsonObject &#61; JSONObject.parseObject(testString);for (Map.Entry entry : jsonObject.entrySet()) {System.out.print(entry.getKey() &#43; "-" &#43; entry.getValue() &#43; "\t");}System.out.println();}}}生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般

这个只是简单的做个介绍&#xff0c;我试试&#xff0c;看别人的博客说顺序不一致&#xff0c;好像不是这回事。挺好的


函数意义
public static final Object parse(String text)把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text)把JSON文本parse成JSONObject
public static final T parseObject(String text, Class clazz);把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text);把JSON文本parse成JSONArray
public static final List parseArray(String text, Class clazz);把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object)将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat);将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject);将JavaBean转换为JSONObject或者JSONArray。

推荐阅读
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
author-avatar
梦回大唐2502907957
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有