# simter-json
**Repository Path**: simter/simter-json
## Basic Information
- **Project Name**: simter-json
- **Description**: Json extension for JSR-353 (Java API for JSON Processing)
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2017-03-07
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# [simter-json](https://github.com/simter/simter-json) [[中文]]
Json extension tools for [JSR-353] \(Java API for JSON Processing\).
JsonObject and JsonArray are design to be a immutable object. Once created, it can not be changed.
But sometimes we need to modify or extend it. This is the target of this extension tools.
## Installation
```xml
tech.simter
simter-json
0.2.0
```
## Requirement
- Java 8+
- At lease one [JSR-353] provider (Java API for JSON Processing)
e.g. [Genson], [Jackson], [Glassfish]
## Usage: JSR-353 base code
### Create a standard JsonObject
```java
JsonObject jsonObject = Json.createObjectBuilder()
.add("str", "a")
.add("num", 1)
.add("bool", false)
.addNull("k")
.build();
```
### Create a standard JsonArray
```java
JsonArray jsonArray = Json.createArrayBuilder()
.add(10)
.add(1.1)
.add(true)
.addNull()
.build();
```
## Usage: This extensions code
### Extend a JsonObject
```java
JsonObject extended = JsonUtils.toBuilder(jsonObject)
.add("newKey", "newValue")
.build();
```
### Extend a JsonArray
```java
JsonArray extended = JsonUtils.toBuilder(jsonArray)
.add("newItem")
.build();
```
### Merge multiple JsonObject or JsonObjectBuilder
```java
JsonObject merged = JsonUtils.merge(jsonObject1, jsonObject2, ...).build();
// or
JsonObjectBuilder merged = JsonUtils.merge(jsonObjectBuilder1, jsonObjectBuilder2, ...);
```
### Merge multiple JsonArray or JsonArrayBuilder
```java
JsonArray merged = JsonUtils.merge(jsonArray1, jsonArray2, ...).build();
// or
JsonArrayBuilder merged = JsonUtils.merge(jsonArrayBuilder1, jsonArrayBuilder2, ...);
```
## Build
```bash
mvn clean package
```
## Deploy
First take a look at [simter-parent] deploy config.
### Deploy to LAN Nexus Repository
```bash
mvn clean deploy -Plan
```
### Deploy to Sonatype Repository
```bash
mvn clean deploy -Psonatype
```
After deployed, login into . Through `Staging Repositories`, search this package,
then close and release it. After couple hours, it will be synced
to [Maven Central Repository](http://repo1.maven.org/maven2/tech/simter/simter-json).
### Deploy to Bintray Repository
```bash
mvn clean deploy -Pbintray
```
Will deploy to `https://api.bintray.com/maven/simter/maven-repo/simter-json/;publish=1`.
So first create a package `https://bintray.com/simter/maven-repo/simter-json` on Bintray.
After deployed, check it from .
[Java API for JSON Processing]: https://jcp.org/en/jsr/detail?id=353
[JSR-353]: https://jcp.org/en/jsr/detail?id=353
[Genson]: http://owlike.github.io/genson
[Jackson]: https://github.com/FasterXML/jackson-datatype-jsr353
[Glassfish]: https://jsonp.java.net/download.html
[oss.sonatype.org]: https://oss.sonatype.org
[simter-parent]: https://github.com/simter/simter-parent
[中文]: https://github.com/simter/simter-json/blob/master/docs/README.zh-cn.md