fastjson学习


1、Object转string

String ss = JSON.toJSONStirng(Object)

2、String类型的dto字符串转换成object类型dto

<span style="white-space:pre">	</span>MethodAttrDto mad = new MethodAttrDto();
        mad = JSONObject.parseObject(methodAttrString,MethodAttrDto.class);
methodAttrString类似于:{"detailId":66,"methodDesc":"","methodName":"","methodTopic":"","priotity":"1","url":"teyryry"}这种形式



### 阅读和理解 fastjson2 源码的方法 #### 1. **了解 fastjson 的基本功能** 在开始阅读源码之前,建议先熟悉 fastjson 的主要功能及其 API 使用方式。这有助于从实际应用的角度出发去理解其内部实现机制。例如,`parseObject()` 和 `parseArray()` 是用于 JSON 反序列化的两个重要方法[^2],而 `write()` 方法则是 JSON 序列化的核心函数[^3]。 #### 2. **掌握 Java 基础知识** 由于 fastjson 是基于 Java 开发的库,因此需要具备扎实的 Java 编程基础,尤其是以下知识点: - 泛型(Generics) - 反射(Reflection) - 注解(Annotations) - IO 流(Input/Output Streams) 这些技术广泛应用于 fastjson 中的数据处理过程。 #### 3. **研究核心类的设计与作用** 以下是几个重要的类以及它们的功能简介: - **`JSON` 类**: 提供静态方法作为对外接口,比如 `toJSONString`, `parseObject` 等。 - **`JSONObject` 和 `JSONArray`**: 表示 JSON 数据结构的具体形式。可以将 `JSONObject` 视作一个扩展版的 `Map<String, Object>`[^1],而 `JSONArray` 则类似于 `List<Object>`。 - **`ParserConfig`**: 负责管理全局范围内的反序列化工厂实例映射关系。 - **`DefaultFieldDeserializer` / `JavaBeanDeserializer`**: 实现字段级别的反序列化逻辑。 - **`SerializeWriter`**: 执行高效的字符流写入操作,在序列化过程中扮演关键角色[^3]。 #### 4. **逐步剖析关键流程** ##### (1)反序列化流程 当调用 `parseObject(String text)` 或者类似的其他变体时,大致经历如下阶段: 1. 初始化上下文环境; 2. 解析输入字符串并构建词法单元树; 3. 根据目标类型匹配相应的 Deserializer; 4. 对象创建完成后填充成员变量值直至完成整个链路[^2]。 ##### (2)序列化流程 以 `JSON.toJSONString(obj)` 为例说明: 1. 获取当前传入对象所属类别对应的 Serializer; 2. 如果存在自定义 Filter,则优先执行过滤规则调整输出样式; 3. 最终通过 `serializeWriter.write(...)` 将结果拼接到缓冲区中形成完整的 JSON 文本。 下面展示一段简化后的伪代码表示该部分工作原理: ```java public static String toJSONString(Object obj){ SerializeWriter out = new SerializeWriter(); try { SerializerFeature[] features = null; JSONSerializer serializer = new JSONSerializer(out, config); // 设置特性标志位影响后续行为表现 if(features !=null ){ serializer.config(0,features); } // 正式启动转换动作 serializer.write(obj); return out.toString(); } finally{ out.close(); } } ``` #### 5. **调试运行验证理论认知** 利用 IDE 工具加载项目源文件后设置断点跟踪具体路径走向可以帮助加深印象巩固记忆效果。同时也可以尝试修改某些局部算法观察整体变化规律从而进一步探索未知领域边界条件等内容。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值