fastjson的基本使用方法

NXP KW45开发实战:如何在MCUXpresso IDE中正确配置J-Link并解决设备识别问题 本文详细介绍了在MCUXpresso IDE中配置J-Link以支持NXP KW45无线MCU开发的实战指南。从环境准备到J-Link深度配置,再到烧录流程优化和高级调试技巧,帮助开发者高效解决设备识别问题并提升开发效率。特别推荐使用JLinkRemoteServer.exe进行多设备并行调试,并提供了烧录速度优化和低功耗调试的实用技巧。 阅读详情

1 fastjson主要的API

fastjson入口类是com.alibaba.fastjson.JSON, 主要API是JSON.toJSONString和parseObject,使用fastjson要注意要转换的类必须有默认的无参构造方法。

  • 序列化:
    String jsonString = JSON.toJSONString(obj);

  • 反序列化:
    VO vo = JSON.parseObject("jsonString", VO.class);

  • 泛型反序列化:

List<VO> list = JSON.parseObject("jsonString", new TypeReference<List<VO>>(){});

注意:VO必须有默认无参构造方法
  • 其他主要API:
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> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean 
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
public static final <T> List<T> parseArray(String text, Class<T> 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。

说明:
SerializeWriter:相当于StringBuffer
JSONArray:相当于List
JSONObject:相当于Map

JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";  
JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);
  • 反序列化能够自动识别如下日期格式:

    • ISO-8601日期格式
    • yyyy-MM-dd
    • yyyy-MM-dd HH:mm:ss
    • yyyy-MM-dd HH:mm:ss.SSS
    • 毫秒数字
    • 毫秒数字字符串
    • NET JSON日期格式
    • new Date(198293238)

3 过滤属性

需要根据不同的环境返回定制化返回属性时,可以使用SimplePropertyPreFilter。

  • SimplePropertyPreFilter的代码接口如下:
public class SimplePropertyPreFilter implements PropertyPreFilter {      
      public SimplePropertyPreFilter(String... properties){
          this(null, properties);
      }

      public SimplePropertyPreFilter(Class<?> clazz, String... properties){
          ... ...
      }

      public Class<?> getClazz() {
          return clazz;
      }

      public Set<String> getIncludes();

      public Set<String> getExcludes();
  ...
  }

你可以配置includes、excludes。当class不为null时,针对特定类型;当class为null时,针对所有类型。
当includes的size > 0时,属性必须在includes中才会被序列化,excludes优先于includes。

  • 使用方法:
    在1.1.23版本之后,JSON提供新的序列化接口toJSONString,如下:

String JSON.toJSONString(Object, SerializeFilter, SerializerFeature...);

用法如下:

 User user = new User();
 user.setName("shamo");
 user.setPwd("123");
 user.setAge(25);

 SimplePropertyPreFilter filter = new SimplePropertyPreFilter(User.class, "pwd", "age");
 Set<String> includes = filter.getIncludes();
 Set<String> excludes = filter.getExcludes();
 includes.add("name");
 excludes.add("pwd");
 String json = JSON.toJSONString(user, filter);
 System.out.println(json);

输出:


{"age":25,"name":"shamo"}

4 修改属性

可以使用JSONObject对json形式的字符串进行任意的增删改
用法如下:

String jsonString = JSON.toJSONString(user);
JSONObject jsonObject = JSON.parseObject(jsonString);
jsonObject.put("gender", "male");
jsonObject.put("pwd","456");
jsonObject.remove("name");
String json = JSON.toJSONString(jsonObject);
System.out.println(json);

输出:

{"pwd":"456","age":25,"gender":"male"}

5 SerializerFeature序列化属性

DisableCheckSpecialChar:一个对象的字符串属性中如果有特殊字符如双引号,将会在转成json时带有反斜杠转移符。如果不需要转义,可以使用这个属性。默认为false 
QuoteFieldNames———-输出key时是否使用双引号,默认为true 
WriteMapNullValue——–是否输出值为null的字段,默认为false 
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null 
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null 
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null 
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null

WriteClassName:
支持序列化时写入类型信息,从而使得反序列化时不丢失类型信息。例如:
Color color = Color.RED; String text = JSON.toJSONString(color,SerializerFeature.WriteClassName); System.out.println(text); 
输出结果:
{"@type":"java.awt.Color","r":255,"g":0,"b":0,"alpha":255}
由于序列化带了类型信息,使得反序列化时能够自动进行类型识别,例如:
String text = ...; //{"@type":"java.awt.Color","r":255,"g":0,"b":0,"alpha":255}
Color color = (Color) JSON.parse(text);
Marvell 88E6390x交换芯片:从零构建No-CPU模式网络交换系统 本文详细介绍了如何为Marvell 88E6390x以太网交换芯片构建No-CPU模式网络交换系统。通过解析其核心价值与硬件准备,并手把手指导使用CodeBlocks、IMPGUI和SwitchGUI等软件工具进行配置代码编写、镜像生成与烧录,最终实现交换芯片脱离外部CPU独立工作,适用于成本敏感、空间受限的嵌入式网络设备设计。 阅读详情

相关推荐

Claude + Figma MCP 实战教程

• 拥有 Figma 的 Dev 或 Full seat(专业/企业账号)权限 才能启用 Dev-Mode MCP 服务 。• MCP 是通过标准接口连接 Claude 与 Figma,效率高,但目前仍为 Beta,稳定性可能有限。3. 服务启动后,会在本地运行,比如 http://127.0.0.1:3845/mcp 。如果设置正确,会显示已连接的 figma-dev-mode-mcp-server  。• 如果多次转换复杂组件,可能需要多次选择与多次生成,建议合理拆分设计任务。

weixin_49869937的博客 4448

使用FastJson parseObject方法时,json字符串解析成对象后,部分属性丢失问题处理

出现此类问题的原因会有多种, 本文仅介绍发现的一种情况,不一定适用所有的场景 情景:   JavaBean 中没有默认的构造方法 例如: public class Student{ public static void main(String[] args) { String jsonStr = "{\"id\":1,\"name\":\"Ming\",\"age\":18,\"phone\":\"23333333333\",\"address\"...

腾龙凌九霄 9181

SAP PP后台配置实战:从BOM到工艺路线的全流程解析

本文详细解析了SAP PP模块后台配置的全流程,从BOM到工艺路线的关键步骤与实战技巧。通过分享生产计划、工作中心能力计划等核心配置经验,帮助企业优化生产管理流程,提升SAP系统实施效率。特别针对BOM配置、工艺路线设置等常见问题提供解决方案。

weixin_29300931的博客 1010

alibaba.fastjson.JSONObject.parseObject的使用

fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,当你要处理一段接收的json数据,就可以考虑使用JSONObject.parseObject import com.alibaba.fastjson.JSONObject; parseObject(String str)的作用 JSON.parseObject(String str)是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置

xuexi_gan的博客 7万+

新手必看:LiteRadio 2c SE遥控器从开箱到飞行的完整指南(附常见问题解答)

本文为新手提供LiteRadio 2c SE遥控器的完整使用指南,涵盖从开箱到首飞的20个关键步骤。详细介绍了遥控器的功能设置、与无人机的对频技巧以及首飞注意事项,帮助用户快速掌握飞行控制,避免常见错误。特别适合无人机初学者阅读。

weixin_29209801的博客 380

卫星动力学仿真模型开发之AI初试

以下是通过AI生成的一个简单的C语言仿真模型,用于模拟卫星的姿态、轨道动力学和运动学。该模型基于基本的物理公式,假设卫星在近地轨道上运行,并忽略了一些复杂的扰动因素(如大气阻力、太阳辐射压等)。姿态动力学描述了卫星绕其质心的旋转运动。轨道动力学描述了卫星在引力作用下的运动。姿态运动学描述了卫星姿态随时间的变化。

xspace的博客 569

fastjson(实例讲解)

fastjson常用api    fastjson API 入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSON...

atu1111的博客 714

天融信防火墙NGFW4000(TG-4628)安装配置笔记

配置一台全新的天融信防火墙NGFW4000,配置完后,内网用户10.10.1.0/24和10.10.2.0/24可以通过防火墙上网,外网用户可以通过访问防火墙的外网接口地址来访问内网的WEB服务器10.10.1.200,并且内网用户也可以通过WEB服务器的外网地址进行访问。 网络说明: 防火墙外网接口地址:218.90.123.121/30 防火墙内网接口地址:19...

weixin_33671935的博客 4455

用ESP32-S3和USB摄像头DIY一个无线图传监控(附完整代码和接线图)

本文详细介绍了如何利用ESP32-S3开发板和USB摄像头打造一套高性价比的无线图传监控系统。从硬件选型、接线图到代码实现,提供了完整的DIY方案,特别适合家庭监控、宠物看护等场景。通过优化WiFi传输和双核任务分配,实现了稳定的视频流传输,整套方案成本控制在200元以内。

weixin_33701251的博客 519

Halcon手眼标定实战:从九点标定到机械臂精准抓取(附完整代码)

本文详细介绍了Halcon手眼标定技术在实际工业场景中的应用,重点讲解了九点标定法在机械臂精准抓取中的实现步骤和优化技巧。通过对比Eye-to-Hand和Eye-in-Hand两种模式的特点,提供完整的代码示例和误差分析,帮助工程师快速掌握标定技术,提升自动化系统的精度和稳定性。

weixin_29100927的博客 459

阿里fastjson使用笔记,parseObject问题,输出下划线格式,json格式化等,不打印base64等

阿里fastjson使用笔记,parseObject问题,输出下划线格式,json格式化等,不打印base64等

enthan809882的博客 3838

《算法第四版》学习心得一——怎么学算法

 一、算法的两个核心 算法的核心内容实际上有两个: 算法的概念和思路。 算法的编程实现。 两者相互关联影响,缺一不可。 不理解基本概念和思路,就算把实现代码背下来,也无济于事,因为脑袋里依然是一片模糊。理解了概念和思路,不去用代码实现,脑袋里有的只是概念,无法根据真实需求实现解决方案。 二、学算法需要什么基础 首先,必须要有一定的编程语言基础,要理解语言中最基本的概念:数据类型,类,成...

illikang的博客 3909

FASTJSON2使用方法

com.alibaba.fastjson2 fastjson2 2.0.52

向上程序员 2391

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

fastjson基础使用方法

1.fastjson List转JSONArray List<T> list = new ArrayList<T>(); JSONArray array= JSONArray.parseArray(JSON.toJSONString(list)); 2.fastjson JSONArray转List JSONArray array = new JSONArray(); List<EventColAttr> list = JSONObject.parseArray(

weixin_42273775的博客 191

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

fastjson 使用方法

Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器。 1、遵循http://json.org标准,为其官方网站收录的参考实现之一。 2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。 3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。 4、开源,使用Apache License 2.0

zeuskingzb的专栏 23万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jsonobject中getkey_FastJson中JSONObject用法及常用方法总结

本文为博主原创,未经允许不得转载:最近一直有用到解析各种数据,主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,今天有时间,所以进行总结一下:JSONobject是FastJson提供的对象,在api中是用一个私有的常量map进行封装的,实际就是一个map,只不过FastJson对其进行了封装,添加了很多方便快捷的属性方法。private final Map map;在...

weixin_39777464的博客 765

fastjson使用方法

一:fastjson介绍 没啥好说的,阿里巴巴出品,网上摘抄一下。 Fastjson是一个Java语言编写的JSON处理器。 1、遵循http://json.org标准,为其官方网站收录的参考实现之一。 2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。 3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。

FightSeeker的专栏 2288

FastJson的使用方法

FastJson的使用方法前言一、FastJson是什么?二、使用步骤1.引入Pom依赖2.使用FastJson将对象转JSON格式3.使用FastJson将JSON格式转为对象或集合 前言 关于FastJson大家一定都有了解,那么对于刚接触的朋友来说可能有点半懵半懂的感觉,那么我就来分享一下自己的理解,如果有不对的地方希望大家指出来,共同进步~ 一、FastJson是什么? Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为

qq_44941808的博客 1万+

FastJson中JSONObject用法及常用方法总结

FastJson中JSONObject用法及常用方法总结

qq_30505421的博客 532

FastJson与Get和Set方法

今天写代码的时候遇到了一个错误一个极其简单的错误。 首先说下过程,我希望将后端Controller返回的结果做一个统一封装,返回统一结果集。 在我重写ResponseBodyAdvice中的beforeBodyWrite()方法,准将结果封装到结果集返回,当我写完代码后发现返回结果为{}。 于是我各种百度,谷歌,都没找到原因,最后我点进去结果集类中发现没有get方法。 解决了一个业务问题后,我得到了另一个技术问题。那就是为什么没get方法获取不到值。 起初我以为是Spring中Bean的原因。是因为我在往前

Monster0AZ的博客 3376

Fastjson简单使用方法

本文转载自:https://www.cnblogs.com/liuchunfu/p/5099248.html 作者:LiuChunfu 转载请注明该声明。一、简单数据的序列化 pubic class UserInfo implements Serializable{ private String name; private int age; public void setName(...

zhengxiuchen86的博客 119

JSON-FastJson的基本使用方法

JSON-FastJson的基本使用方法 package com.hbbc.entity; public class Student { private int id; private String stuName; private int age; // 使用fastjson要注意要转换的类必须有默认的无参构造方法。 public int getId() { return i

WSDS_MZM的博客 730

【Java工具库——FastJson的40个常用方法】

阿里巴巴的 FastJSON,也被称为 Alibaba FastJSON 或阿里巴巴 JSON,是一个高性能的 Java JSON 处理库,用于在 Java 应用程序中解析和生成 JSON 数据。FastJSON 以其卓越的性能和功能丰富的特点而闻名,并在阿里巴巴的开源项目和其他许多 Java 应用程序中广泛使用。FastJSON 允许你自定义如何将 Java 对象序列化为 JSON 数据以及如何将 JSON 数据反序列化为 Java 对象。这可以用于处理特定的数据格式或数据结构。

1114

FASTJSON常用方法

这里主要列出fastjson的实用方法,便于以后自己或其他朋友参考 一、解析json字符串并获取数据 1.把json字符串转换为实体类     1.1、直接解析为对象(支持深度解析)     T t = JSON.parseObject(jsonstr, T.class);         // 解析{...}为对象     List&lt;t&gt; list = JSON.parseAr...

authority39的博客 5179

fastjson教程 android,android fastjson使用方法 fastjson教程

OK。由于因为数据加密,还有网络请求的问题,需要把JSON解析从后台Service中转移到前台UI线程来解析。所以,我开发的时候极大 的考虑了json解析的速度。不然耗时太厉害的话UI线程卡顿。会让界面看起来卡一下,卡一下的。package com.commons.utils.json;import com.tencent.stat.common.User;import org.apache.co...

weixin_39900023的博客 843
上一篇: Redis内存使用优化与存储
下一篇: 使用阻塞式队列处理大数据
codershamo
博客等级 码龄10年 22粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值