Skip to content

Provides an unified JSON access API, you can adapter any JSON library to Gson, Jackson, FastJson with easyjson。 提供了一个JSON门面库,就像slf4j一样。easyjson本身不做json的操作,完全依赖于底层实现库。可以直接使用Easyjson的API,底层的JSON库随时可切换。也可以使用其中某个json的API,然后通过easyjson适配给其他的json库

License

Notifications You must be signed in to change notification settings

bes2008/easyjson

This branch is 1 commit ahead of, 82 commits behind master.

Folders and files

NameName
Last commit message
Last commit date
Sep 2, 2020
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Nov 16, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Sep 17, 2022
Jun 15, 2020
Nov 13, 2019
Dec 5, 2020
Sep 17, 2022
Jul 5, 2019
Jun 27, 2019
Sep 17, 2022

Repository files navigation

JSON

License

Build Status Codacy Badge

gson fastjson jackson

JDK

maven

easyjson

Provides a unified JSON access API, you can adapter any JSON library to Gson, Jackson, FastJson with easyjson.

Modules

  • easyjson-core: 这是个核心模块,可以直接去用这个模块的API,就像使用slf4j的logger API一样。
  • easyjson-XXX: 使用它可以将其他的JSON库适配给XXX,由XXX来做具体的json操作。
    1. easyjson-gson: 使用它可以将其他的JSON库适配给Gson
    2. easyjson-jackson: 使用它可以将其他的JSON库适配给Jackson
    3. easyjson-fastjson: 使用它可以将其他的JSON库适配给 Fastjson
  • XXXX-to-easyjson: 有很多这样的模块,它们是用于将xxx JSON库通过easyjson-core,适配给底层JSON实现库。
    1. fast-to-easyjson: 使用它可以将fastjson库通过easyjson适配给 gson, jackson
    2. gson-to-easyjson: 使用它可以将fastjson库通过easyjson适配给 fastjson, jackson
    3. android-to-easyjson: 使用它可以将其他的Android下的org.json库通过easyjson适配给fastjson, gson, jackson
    4. boonjson-to-easyjson: 使用它可以将安卓下的boon-json(io.advantageous.boon.json)库通过easyjson适配给fastjson, gson, jackson
    5. jsonlib-to-easyjson: 使用它可以将json-lib (net.sf.json)通过easyjson适配给fastjson, gson, jackson
    6. jsonsmart-to-easyjson: 使用它可以将json-smart (net.minidev.json)通过easyjson适配给fastjson, gson, jackson
    7. minimaljson-to-easyjson: 使用它可以将minimal-json (com.eclipsesource.json)通过easyjson适配给fastjson, gson, jackson
    8. moshi-to-easyjson: 使用它可以将moshi-json (com.squareup.moshi)通过easyjson适配给fastjson, gson, jackson
    9. orgjson-to-easyjson: 使用它可以将org.json通过easyjson适配给fastjson, gson, jackson
    10. progsbase-to-easyjson: 使用它可以将progsbase json通过easyjson适配给fastjson, gson, jackson
    11. simplejson-to-easyjson: 使用它可以将json-simple通过easyjson适配给fastjson, gson, jackson
  • easyjson-examples: test cases
  • easyjson-test: test cases v2

Usage

Key Features

  1. Supports gson, fastjson, jackson, Progsbase ...
  2. Supports tree model, stream model
  3. Control whether serialize null
  4. Convert ON|OFF, 1|0 to Boolean
  5. Serialize or deserialize a Enum based on custom field
  6. Serialize or deserialize a Date using specified pattern | date format
  7. Supports custom exclusion rule, for examples: @Ignore, transient, specified modifier ...
  8. Get the JSONBuilder with zero configuration
  9. Switch the underlying implement without any code change
  10. Supports JDK 1.6+

Quick Start

installation

easyjson facade JSON Implementation
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>easyjson-core</artifactId>
    <version>${version}/version>
</dependency>
                
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>easyjson-gson</artifactId>
    <version>${version}
</dependency>
                
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>easyjson-jackson</artifactId>
    <version>${version}/version>
</dependency>
                
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>easyjson-fastjson</artifactId>
    <version>${version}/version>
</dependency>
                
JSON Library Maven version Adapter
Android json
<dependency>
    <groupId>com.vaadin.external.google</groupId>
    <artifactId>android-json</artifactId>
    <version>0.0.20131108.vaadin1</version>
</dependency>
                
0.0.20131108.vaadin
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>android-to-easyjson</artifactId>
    <version>${version}</version>
</dependency>
                
fastjson
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.58</version>
</dependency>
                
1.2.58
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>fastjson-to-easyjson</artifactId>
    <version>${version}</version>
</dependency>
                
json-lib
<dependency>
    <groupId>com.hynnet</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
</dependency>
                
2.4
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>jsonlib-to-easyjson</artifactId>
    <version>${version}</version>
</dependency>
                
json-smart
<dependency>
    <groupId>net.minidev</groupId>
    <artifactId>json-smart</artifactId>
    <version>2.3</version>
</dependency>
                
2.3
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>jsonsmart-to-easyjson</artifactId>
    <version>${version}</version>
</dependency>
                
Eclipse minimal-json
<dependency>
    <groupId>com.eclipsesource.minimal-json</groupId>
    <artifactId>minimal-json</artifactId>
    <version>0.9.5</version>
</dependency>
                
0.9.5
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>minimaljson-to-easyjson</artifactId>
    <version>${version}</version>
</dependency>
                
org.json
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180813</version>
</dependency>
                
20180813
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>orgjson-to-easyjson</artifactId>
    <version>${version}</version>
</dependency>
                
Progsbase JSON
<dependency>
    <groupId>com.progsbase.libraries</groupId>
    <artifactId>JSON</artifactId>
    <version>0.3.9</version>
</dependency>
                
0.3.9
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>progsbase-to-easyjson</artifactId>
    <version>${version}</version>
</dependency>
                
json-simple
<dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1.1</version>
</dependency>
                
1.1.1
<dependency>
    <groupId>io.github.bes2008.solutioneasyjson</groupId>
    <artifactId>simplejson-to-easyjson</artifactId>
    <version>${version}</version>
</dependency>
                
Boon-json
        <dependency>
            <groupId>com.github.advantageous</groupId>
            <artifactId>boon-json</artifactId>
            <version>0.5.7-RC1</version>
        </dependency>
                
0.5.7-RC1
        <dependency>
            <groupId>io.github.bes2008.solutioneasyjson</groupId>
            <artifactId>boonjson-to-easyjson</artifactId>
            <version>${version}</version>
        </dependency>
                
Moshi
        <dependency>
            <groupId>com.squareup.moshi</groupId>
            <artifactId>moshi</artifactId>
            <version>1.9.2</version>
        </dependency>
                
1.8.6+
        <dependency>
            <groupId>io.github.bes2008.solutioneasyjson</groupId>
            <artifactId>moshi-to-easyjson</artifactId>
            <version>${version}</version>
        </dependency>
                

How to:

@see easyjson-examples testcases

Contact:

如果遇到问题,可以在Github, Gitee 上提出issue, 也可以在QQ群里询问。

QQ Group: 750929088
QQ Group

  • langx 系列
    • langx-js:TypeScript, JavaScript tools
    • langx-java: Java tools ,可以替换guava, apache commons-lang,io, hu-tool等
  • easyjson: 一个通用的JSON库门面,可以无缝的在各个JSON库之间切换,就像slf4j那样。
  • sqlhelper: SQL工具套件(通用分页、DDL Dump、SQLParser、URL Parser、批量操作工具等)。
  • esmvc: ElasticSearch 通用客户端,就像MyBatis Mapper那样顺滑
  • redisclient: 基于Spring RestTemplate提供的客户端
  • audit:通用的Java应用审计框架

鸣谢

最后,感谢 Jetbrains 提供免费License,方便了开源项目的发展。

Jetbrains

About

Provides an unified JSON access API, you can adapter any JSON library to Gson, Jackson, FastJson with easyjson。 提供了一个JSON门面库,就像slf4j一样。easyjson本身不做json的操作,完全依赖于底层实现库。可以直接使用Easyjson的API,底层的JSON库随时可切换。也可以使用其中某个json的API,然后通过easyjson适配给其他的json库

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages