fastjson中Feature的用法及中文注解

FastJSON2 学习笔记 FASTJSON2是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库。官方如是说。 阅读详情
AI摘要

本文深入探讨了JSON解析器的各种特性,如自动关闭输入源、允许注释、未引用字段名等,这些特性对JSON解析过程有着重要影响。文章还提到了如何通过配置使解析器支持特定的JSON格式和解析行为。

源码

/**

 * 这个特性,决定了解析器是否将自动关闭那些不属于parser自己的输入源。 如果禁止,则调用应用不得不分别去关闭那些被用来创建parser的基础输入流InputStream和reader;如果允许,parser只要自己需要获取closed方法(当遇到输入流结束,或者parser自己调用 JsonParder#close方法),就会处理流关闭。

 * 注意:这个属性默认是true,即允许自动关闭流

*/

AutoCloseSource

 

/**

 * 该特性决定parser将是否允许解析使用Java/C++ 样式的注释(包括'/'+'*' 和'//' 变量)。 由于JSON标准说明书上面没有提到注释是否是合法的组成,所以这是一个非标准的特性;尽管如此,这个特性还是被广泛地使用。

 * 注意:该属性默认是false,因此必须显式允许,即通过JsonParser.Feature.ALLOW_COMMENTS 配置为true。

*/

AllowComment

 

/**

 * 这个特性决定parser是否将允许使用非双引号属性名字, (这种形式在Javascript中被允许,但是JSON标准说明书中没有)。

 * 注意:由于JSON标准上需要为属性名称使用双引号,所以这也是一个非标准特性,默认是false的。

 * 同样,需要设置JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES为true,打开该特性。

*/

AllowUnQuotedFieldNames

 

/**

 * 该特性决定parser是否允许单引号来包住属性名称和字符串值。

 * 注意:默认下,该属性也是关闭的。需要设置JsonParser.Feature.ALLOW_SINGLE_QUOTES为true

*/

AllowSingleQuotes

 

/**

 * 该特性决定JSON对象属性名称是否可以被String#intern 规范化表示。如果允许,则JSON所有的属性名将会 intern() ;如果不设置,则不会规范化,默认下,该属性是开放的。此外,必须设置CANONICALIZE_FIELD_NAMES为true

 * 关于intern方法作用:当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串 (该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String

 * 对象添加到池中, 并且返回此 String 对象的引用。

 */

InternFieldNames

 

//这个设置为true则遇到字符串符合ISO8601格式的日期时,会直接转换成日期类。

AllowISO8601DateFormat

 

//允许多重逗号,如果设为true,则遇到多个逗号会直接跳过;

AllowArbitraryCommas

 

//这个设置为true则用BigDecimal类来装载数字,否则用的是double;

UseBigDecimal

 

//忽略不匹配

IgnoreNotMatch

 

//如果你用fastjson序列化的文本,输出的结果是按照fieldName排序输出的,parser时也能利用这个顺序进行优化读取。这种情况下,parser能够获得非常好的性能

SortFeidFastMatch

 

//禁用ASM

DisableASM

 

//禁用循环引用检测

DisableCircularReferenceDetect

 

//对于没有值得字符串属性设置为空串

InitStringFieldAsEmpty

 

//支持数组to对象

SupportArrayToBean

 

//属性保持原来的顺序

OrderedField

 

//禁用特殊字符检查

DisableSpecialKeyDetect

 

//使用对象数组

UseObjectArray;

 

 

用法

JSONObject reqJSON = JSONObject.parseObject(body, Feature.OrderedField);

 

feature转化为Json对象 feature转化为Json对象,有时我们需要用CallbackResult把feature对象转换成json,然后在客户端做处理 立即下载

相关推荐

AVL-Excite新手必看:5步搞定发动机阀系系统建模(附B站视频教程)

本文为AVL-Excite新手提供发动机阀系系统建模的5步详细指南,涵盖软件环境搭建、基本结构建立、关键参数设置、仿真分析及常见问题排查。通过清晰的步骤说明和实用技巧,帮助工程师快速掌握建模方法,并附有精选B站视频教程链接,便于实践学习。

weixin_29305313的博客 502

Fastjson源码分析—反序列化—Feature的功能和实现

2021SC@SDUSC Feature的功能和实现 当我们对json字符串进行反序列化时,有时并不想完全按照json字符串默认的规则生成相应的Java对象,而有时我们手中的字符串亦不符合json字符串的格式,无法按照原有的规则进行解析。这时,我们需要修改反序列化的默认解析规则,而Fastjson恰好提供了这一功能。 使用Fastjson进行反序列化的时候,有一个可选的参数features,用于对反序列化的过程和结果进行定制化。 Feature的取值表示 先看看这几个重载方法: public static

qq_45854465的博客 6642

电磁兼容标准体系解析:从基础到认证的完整指南

本文系统解析了电磁兼容(EMC)标准体系,从基础概念到认证流程提供完整指南。文章阐述了EMC对于产品可靠性与市场准入的重要性,详细拆解了基础标准、通用标准、产品类标准及认证流程四层结构,并结合5G设备与工业控制等实战案例,为工程师提供了从设计初期到认证测试的高效应用策略。

weixin_29294975的博客 355

FastJson 2『使用心得』

包含了 JSON、JSONObject、@JSONField、NameFilter、ValueFilter使用的示例。还包括 JSONWriter.Feature、JSONReader.Feature、PropertyNamingStrategy 枚举类的举例说明。

Eleganise'的博客 4598

别再瞎调参数了!用MATLAB fmincon优化傅里叶级数,为你的机器人设计“完美”激励轨迹

本文详细介绍了如何利用MATLAB的fmincon优化器设计机器人激励轨迹,通过优化傅里叶级数参数,解决传统试错法的低效问题。文章涵盖了目标函数设计、约束条件转化及优化算法选择,帮助工程师实现高精度的系统辨识和动力学参数优化。

weixin_42613501的博客 240

Plant Simulation 双深位立库开发系列教程-货架参数化

为了方便用户进行货架参数化,我们需要在交互界面上进行参数调整,右键打开RackLane,打开Dialog,在Rack_tab的tab下创建相应的对象,并创建NumberOfRightRack和NumberOfLeftRack作为数据连接对象。通过Rack._3D.VisibleGraphicGroups := ["default"]来切换需要显示的Rack,当不需要显示则可以Rack._3D.VisibleGraphicGroups := [""]即可。首先,加载默认的HBW库到模型中,确保结构树当中有。

santayana的专栏 1256

JSON学习笔记

JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。 JSON就是一串字符串 只不过元素会使用特定的符号标注。

有情绪的仙人掌 720

3D 结构光相机工作原理全解 | 从编码投射到三维重建,原理 + 代码 + 工业实战一站式掌握

本文从3D结构光相机的整体架构出发,层层拆解了编码投射、相位计算、相位解包裹、三维重建的核心原理,补充了工业实战所需的公式推导、代码实现、参数调优、设备选型和案例落地,核心总结如下:相位是3D结构光成像的“灵魂”,其精度、稳定性直接决定3D重建的效果,包裹相位与绝对相位的区分的是工业实战的基础;编码投射的核心是“正弦条纹+格雷码条纹”组合,正弦条纹负责高精度相位提取,格雷码条纹辅助解包裹,适配工业场景的精度与稳定性需求;

getusushu的博客 411

使用fastjson解析数据后导致顺序改变问题

转载来自:https://blog.youkuaiyun.com/long2010110/article/details/81537820 在开发过程中遇到一个问题,服务器经过排序返回后的字符串数据使用fastjson解析后,数据顺序发生变化,引起业务异常。 解决办法: 1、解析时增加参数不调整顺序 JSONObject respondeBodyJson = JSONObject.parseObject(jsonStr, Feature.OrderedField); 2、初始化json对象为有序对象: JSONObj

xinyu100100的博客 2197

OPPO 后端校招面试,过于简单了!

你好,我是 Guide。2026 届秋招陆续开奖公司的越来越多了,今天来看一家手机厂 OPPO。前几天,已经分享了和今年校招开奖的情况。其中,小红书的薪资最为炸裂,大白菜一年都能给到 51w+。不过,相对应的工作强度和压力也是真的难顶,确实很难有钱多又轻松的活!OV (OPPO 和 Vivo)这几年发展真还可以的,这两家的高端机口碑都不错。本人也是最近入手了一款 Vivo 的上一代旗舰,拍照是真的不错啊!每个月会有 1.2k 生活补贴,生活费是按照 8 % 缴纳。

JavaGuide 748

广东省道路工程检测练习试题(单选题)真题

1.一般项目的合格点率应达到( ),且不合格点的最大偏差值不得大于规定允许偏差值的1.5倍。A.不低于75%B.不低于80%C.不低于85%D.不低于90%答案:B2.进行土路基平整度检测时,当路宽小于9m,检测点数应为( )A.1B.2C.3D.4答案:A3.根据《城镇道路工程施工与质量验收规范》,在分部工程中,根据工种、材料、施工工艺等划分的是( )A.单位工程B.分项工程C.分部工程D.工序工程答案:B4.根据《城镇道路工程施工与质量验收规范》,土方路基压实度的检测频率为每1000m每压实层抽检( )

ZShy001238的博客 681

fastjson序列化时与反序列化时常用特征值的中文注解

一、SerializerFeature(序列化) QuoteFieldNames,//输出key时是否使用双引号,默认为true UseSingleQuotes,//使用单引号而不是双引号,默认为false WriteMapNullValue,//是否输出值为null的字段,默认为false WriteEnumUsingToString,//Enum输出name()或者original,默认为false UseISO8601DateFormat,//Date使用ISO8601格式输出,默认为

chou_kawaii的博客 2516

YOLOv8人工智能与深度学习——强化学习

本文介绍了将YOLOv8目标检测模型与强化学习结合的方法。主要应用包括自适应目标检测(动态调整检测参数)、主动学习(智能选择标注样本)和多目标跟踪优化。实现方案采用深度Q网络策略,通过定义状态表示、动作空间和奖励函数,使检测系统能根据环境反馈优化性能。该方法具有自适应优化、资源高效、持续改进等优势,能构建更智能的计算机视觉系统。文章详细说明了强化学习环境的构建、策略网络的实现以及训练过程,并提供了代码示例。

u010117029的博客 259

fastjson的简单介绍及常用案例

fastjson的简单介绍及常用案例fastjsonjsonObjectjsonArrayJSON fastjson 一种轻量级的数据交换格式。 若有不恰之处,请各位道友指正~ jsonObject JSONObject主要封装了各种get方法,通过键值对中的键来获取其对应的值 常用的方法: 主要通过KV的键值对的方式获取到数据。 jsonArray 主要用于直接操作json对象,因为js...

renguiriyue的博客 270

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java基础之《fastJson使用》

1、String转换为JsonObjectJSONObject resJson = JSONObject.parseObject(response);2、获取嵌套的Json对象JSONObject alipayResponse = resJson.getJSONObject("alipay_trade_precreate_response");3、获取Json对象key对应的valueString...

csj50的专栏 1173

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java中的文件解析——JSON解析

为了实现客户端与服务器之间的数据交换,xml文件可能会成为首选,但是由于xml文件需要太多标签,造成资源上的冗余,因此,就放弃了xml文件,那么第二种可能会选择序列化和反序列化,IO流就是一种代表,实现了从磁盘到内存之间的交互,但是,如果基于不同语言或不同平台,那么序列化进行数据交互就无法实现。由此就出现了JSON,它是基于 ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

仙草不加料的博客 4170

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

JSON Feature.OrderedField 作用

fastJson 中提供的 将字符串转为某些对象时,为了保证对象内部的顺序保持不变。这样使得解析后的结果依旧可以保证顺序不发生变化。

weixin_44131922的博客 5569

fastjson Features 说明

/**  * 这个特性,决定了解析器是否将自动关闭那些不属于parser自己的输入源。 如果禁止,则调用应用不得不分别去关闭那些被用来创建parser的基础输入流InputStream和reader;如果允许,parser只要自己需要获取closed方法(当遇到输入流结束,或者parser自己调用JsonParder#close方法),就会处理流关闭。  * 注意:这个属性默认是true,即允...

hellozhxy的博客 5413

Jackson使用详解

Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。Jackson 社区相对比较活跃,更新速度也比较快, 从 Github 中的统计来看,Jackson 是最流行的 json 解析器之一。Spring MVC 的默认 json 解析器便是 Jackson。Jackson 优点很多。Jackson 所依赖的 jar 包较少 ,简单易用。与其他 Java 的 json 的框架 Gson 等相比, Jackson 解析大的 json 文件速度比较快;

qq_32907491的博客 2023

Fastjson 学习笔记

Fastjson

吃水煮鱼片的博客 5426

使用【JSON.parseArray】反序列化yyyy-MM-dd HH:mm:ss格式日期失败

解决方案 在你反序列化的java对象中Date类型的属性加上注解yyyy-MM-dd’T’HH:mm:ss.SSS Z这种格式是ISO8601的规定的时间格式 其中T表示日期跟时间的分隔 SSS表示毫秒数 Z表示0时区

weixin_43377482的博客 3612

fastjson文档解读——上篇

没事翻翻fastjson文档,结合网上资料,了解了解fastjson。上篇主要是解读com.alibaba.fastjson.JSON类。 fastjson主要特点: fastjson速度非常快,它采用了独特的算法,把parse(解析)的速度提升到了极致,包括曾经号称最快的jackson(不知道jackson当年装这个逼的时候有没有想到会被阿里打脸),并且还超越了google的二进制协议pro

cqhzq2014的专栏 8643

Fastjson 全局配置SerializerFeature

@Configuration @ConditionalOnClass(JSON.class) public class FastJsonConfiguration { static { JSON.DEFAULT_GENERATE_FEATURE |= SerializerFeature.WriteMapNullValue.getMask(); JSON.D...

采蘑菇的奥特曼 2788

utils008_fastjson中Feature类学习(更快描述某些属性)

package com.jingsong.test; /** * @author jingsong * @date 2022/4/26 0:02 * @desc com.alibaba.fastjson.parser.Feature * 该文件中提供了描述某一事物的方法,可以更快的描述某一事物的特征,下面为简单的学习 */ public class JSONFeatureTest { public static void main(String[] args) { //

靖松的博客 1023
上一篇: fastjson中SerializerFeature的用法及中文注解
下一篇: fastJSON反序列化字段顺序和序列化忽略null字段问题
xinyuan_java
博客等级 码龄12年 181粉丝 83原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值