https://github.com/myibu/json4j
a package is for JSON conversion in Java enviroment.
https://github.com/myibu/json4j
java json
Last synced: 6 months ago
JSON representation
a package is for JSON conversion in Java enviroment.
- Host: GitHub
- URL: https://github.com/myibu/json4j
- Owner: myibu
- Created: 2021-04-05T11:43:03.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-04-17T19:11:59.000Z (about 5 years ago)
- Last Synced: 2023-06-30T20:38:47.277Z (about 3 years ago)
- Topics: java, json
- Language: Java
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# json4j
The package is for [JSON](https://www.json.org/json-en.html) conversion in Java enviroment.
JSON TypeJSON Type ExampleJava Type
object{}JSONObject
array[]JSONArray
string"example"String
number1/1.0BigInteger/BigDecimal
"true"trueboolean
"false"falseboolean
"null"nullnull
## Implements
> Convert a JSON string into a JSON object
`JSON.parse(value)` is based on stack structure.
There are three stacks in the program, `stack` stack for characters,` class_stack` stack for list and dict, `keyvalue_stack` stack for name/value pair.
Scan each character in the string, do the following:
1. If is `[`, put type/value into `class_stack` stack
2. If is `{`, put type/value into the `class_stack` stack, and put an empty key/value pair (named` border`) into the `keyvalue_stack` stack
3. If is`,`, according to `class_stack` stack top type (list and dict),` list` is to operate on the top of the `class_stack` stack and call its append method, `dict` is pushed into the `keyvalue_stack` stack
4. If is `]`, popping all the elements on the top of the `stack` stack until it encounters `[`
5. If is `}`, pop the `keyvalue_stack` stack and pop all the elements on the top of the stack until it encounters `border`
6. If is `:`, operate on the top of the `keyvalue_stack` stack and modify the value in the key/value pair
7. Other, put characters into the `stack` stack
> Convert JSON values to JSON strings
`JSON.stringify(value)` is using recursive method.
1. If it is a basic type in Python (number, string, bool, None), return the corresponding string (1/1.0, "example", true/false, null)
2. If it is list and dict, repeat step 1 for each element in the list and dict
3. Others, It is a class, consider as a dict type, terating over member variables of a class, do the same action as step 1
## Installation
```bash
com.github.myibu
json4j
1.0.0
```
## Examples
- Convert a JSON string into a JSON object.
```java
JSONObject jsonObject = JSONObject.parse("[\"foo\", {\"bar\": [\"baz\", null, 1.0, 2, true]}]");
// or write as following if you donot known the type of th json String
Object jo = JSON.parse("[\"foo\", {\"bar\": [\"baz\", null, 1.0, 2, true]}]");
```
- Convert JSON values to JSON strings.
```java
Map map = new HashMap<>();
map.put("1", "00");
String jsonString = JSON.toJSONString(map);
```
- Format JSON object or JSON strings
```java
Map map = new HashMap<>();
map.put("1", "00");
String formatedJsonString = JSON.format(map);
```