一个用于JSON序列化/反序列化的Java库,拥有良好的性能和高拓展性。
A Java library for JSON serialization/deserialization, it has good performance and high extensibility.
中文 | English
- 容易上手,安装即可快速使用
- 基于注解和JSONPath工作的反序列化/序列化流程,直观、方便、容易使用
- 支持复杂实体类和变量的反序列化等
- 对泛型的良好支持
- 不断更新的内置注解,方便处理数据
- 可自定义注解,拓展Lson功能
implementation 'cn.luern0313.lson:Lson:0.90'
<dependency>
<groupId>cn.luern0313.lson</groupId>
<artifactId>Lson</artifactId>
<version>0.90</version>
</dependency>
LsonElement lsonElement = LsonUtil.parse(jsonString);
该方法返回一个LsonElement,若你能确定JSON为Object或Array,你也可以使用:
LsonObject lsonObject = LsonUtil.parseAsObject(jsonString);
或
LsonArray lsonArray = LsonUtil.parseAsArray(jsonString);
XXXModel model = LsonUtil.fromJson(lsonElement, XXXModel.class);
你需要一个实体类来供Lson反序列化,在需要反序列化的变量上添加注解@LsonPath,并填写path来描述此变量在JSON中的位置。
你还可以使用Lson的内置注解或自定义注解来处理反序列化中的变量。
详细用法请查看Lson Wiki。
String json = LsonUtil.toJson(model);
同样的,序列化也需要注解@LsonPath来让Lson定位值在json中的具体位置。
内置注解和自定义注解同样可以作用于序列化。
详细用法请查看Lson Wiki。
欢迎你与本项目一起成长!
要贡献你的代码,请Fork后Pull Requests。
或提出Issue反馈问题或建议。
特别感谢: lzjyzq2、setTile工作室
Bilibili: https://space.bilibili.com/8014831
Github: https://github.com/luern0313
个人网站: https://luern0313.cn
Lson使用Apache 2.0 license。
Copyright 2020 luern0313
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.