Skip to content
This repository was archived by the owner on Aug 19, 2025. It is now read-only.

Commit 2312eca

Browse files
committed
Added new function: JSON_DUPLICATE_KEYS.set()
1 parent fc61da8 commit 2312eca

File tree

2 files changed

+250
-88
lines changed

2 files changed

+250
-88
lines changed

README.md

Lines changed: 65 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ print(JDKSObject)
3737

3838
# OUTPUT: <json_duplicate_keys.JSON_DUPLICATE_KEYS object at 0x00000270AE987940>
3939
```
40+
---
4041

4142
### load(`Jfilepath`, `dupSign_start`="{{{", `dupSign_end`="}}}", `ordered_dict`=False, `_isDebug_`=True)
4243
_Deserialize a JSON format string from a file to a class `JSON_DUPLICATE_KEYS`_
@@ -58,6 +59,7 @@ print(JDKSObject)
5859

5960
# OUTPUT: <json_duplicate_keys.JSON_DUPLICATE_KEYS object at 0x00000270AE986D40>
6061
```
62+
---
6163

6264
### JSON_DUPLICATE_KEYS.getObject()
6365
_Get the JSON object_
@@ -72,6 +74,7 @@ print(JDKSObject.getObject())
7274

7375
# OUTPUT: {'author': 'truocphan', 'version': '22.3.3', 'version{{{_2_}}}': 'latest', 'release': [{'version': '22.3.3', 'version{{{_2_}}}': 'latest'}], 'snapshot': {'author': 'truocphan', 'version': '22.3.3', 'release': [{'version': 'latest'}]}}
7476
```
77+
---
7578

7679
### JSON_DUPLICATE_KEYS.get(`name`, `separator`="||", `parse_index`="$", `_isDebug_`=True)
7780
_Get value in the JSON object by `name`_
@@ -95,11 +98,12 @@ print(JDKSObject.get("release||$0$"))
9598
print(JDKSObject.get("snapshot||author"))
9699
# OUTPUT: truocphan
97100
```
101+
---
98102

99103
### JSON_DUPLICATE_KEYS.set(`name`, `value`, `separator`="||", `parse_index`="$", `dupSign_start`="{{{", `dupSign_end`="}}}", `ordered_dict`=False, `_isDebug_`=True)
100104
_Set a new `name` and `value` for the JSON object_
101-
- `name`:
102-
- `value`:
105+
- `name`: new key name for the JSON object. Supported flat key name format
106+
- `value`: value for key `name`
103107
- `separator`:
104108
- `parse_index`:
105109
- `dupSign_start`:
@@ -109,23 +113,56 @@ _Set a new `name` and `value` for the JSON object_
109113
```python
110114
import json_duplicate_keys as jdks
111115

112-
JDKSObject = jdks.loads('{}')
116+
Jstr = '{}'
117+
JDKSObject = jdks.loads(Jstr)
118+
113119
print(JDKSObject.getObject())
114-
# OUTPUT:
120+
# OUTPUT: {}
115121

116122
JDKSObject.set("author", "truocphan")
117123
print(JDKSObject.getObject())
118-
# OUTPUT:
124+
# OUTPUT: {'author': 'truocphan'}
119125

120126
JDKSObject.set("version", "22.3.3")
127+
print(JDKSObject.getObject())
128+
# OUTPUT: {'author': 'truocphan', 'version': '22.3.3'}
129+
121130
JDKSObject.set("version", "latest")
122131
print(JDKSObject.getObject())
123-
# OUTPUT:
132+
# OUTPUT: {'author': 'truocphan', 'version': '22.3.3', 'version{{{_2_}}}': 'latest'}
124133

125-
JDKSObject.set("release||$0$||version", "latest")
134+
JDKSObject.set("release", [{"version": "latest"}])
126135
print(JDKSObject.getObject())
127-
# OUTPUT:
136+
# OUTPUT: {'author': 'truocphan', 'version': '22.3.3', 'version{{{_2_}}}': 'latest', 'release': [{'version': 'latest'}]}
137+
138+
JDKSObject.set("snapshot", {})
139+
print(JDKSObject.getObject())
140+
# OUTPUT: {'author': 'truocphan', 'version': '22.3.3', 'version{{{_2_}}}': 'latest', 'release': [{'version': 'latest'}], 'snapshot': {}}
141+
142+
JDKSObject.set("snapshot||author", "truocphan")
143+
print(JDKSObject.getObject())
144+
# OUTPUT: {'author': 'truocphan', 'version': '22.3.3', 'version{{{_2_}}}': 'latest', 'release': [{'version': 'latest'}], 'snapshot': {'author': 'truocphan'}}
145+
146+
147+
Jstr = '[]'
148+
JDKSObject = jdks.loads(Jstr)
149+
150+
print(JDKSObject.getObject())
151+
# OUTPUT: []
152+
153+
JDKSObject.set("author", "truocphan")
154+
print(JDKSObject.getObject())
155+
# OUTPUT: [{'author': 'truocphan'}]
156+
157+
JDKSObject.set("release", [])
158+
print(JDKSObject.getObject())
159+
# OUTPUT: [{'author': 'truocphan'}, {'release': []}]
160+
161+
JDKSObject.set("$1$||release||", {"version": "latest"})
162+
print(JDKSObject.getObject())
163+
# OUTPUT: [{'author': 'truocphan'}, {'release': [{'version': 'latest'}]}]
128164
```
165+
---
129166

130167
### JSON_DUPLICATE_KEYS.update(`name`, `value`, `separator`="||", `parse_index`="$", `_isDebug_`=True)
131168
_Update new `value` for existing `name` in the JSON object_
@@ -150,6 +187,7 @@ JDKSObject.update("snapshot||version", "latest")
150187
print(JDKSObject.getObject())
151188
# OUTPUT: {'author': 'truocphan', 'version': '22.3.3', 'version{{{_2_}}}': ['22.3.3', 'latest'], 'release': [{'version': 'latest'}], 'snapshot': {'author': 'truocphan', 'version': 'latest', 'release': [{'version': 'latest'}]}}
152189
```
190+
---
153191

154192
### JSON_DUPLICATE_KEYS.delete(`name`, `separator`="||", `parse_index`="$", `_isDebug_`=True)
155193
_Delete a key-value pair in a JSON object by key `name`_
@@ -174,6 +212,7 @@ JDKSObject.delete("snapshot")
174212
print(JDKSObject.getObject())
175213
# OUTPUT: {'author': 'truocphan', 'version{{{_2_}}}': 'latest', 'release': []}
176214
```
215+
---
177216

178217
### JSON_DUPLICATE_KEYS.dumps(`dupSign_start`="{{{", `dupSign_end`="}}}", `_isDebug_`=True, `skipkeys`=False, `ensure_ascii`=True, `check_circular`=True, `allow_nan`=True, `cls`=None, `indent`=None, `separators`=None, `default`=None, `sort_keys`=False)
179218
_Serialize a JSON object to a JSON format string_
@@ -198,6 +237,7 @@ JDKSObject.delete("snapshot")
198237
print(JDKSObject.dumps())
199238
# OUTPUT: {"author": "truocphan", "version": "latest", "release": []}
200239
```
240+
---
201241

202242
### JSON_DUPLICATE_KEYS.dump(`Jfilepath`, `dupSign_start`="{{{", `dupSign_end`="}}}", `_isDebug_`=True, `skipkeys`=False, `ensure_ascii`=True, `check_circular`=True, `allow_nan`=True, `cls`=None, `indent`=None, `separators`=None, `default`=None, `sort_keys`=False)
203243
_Serialize a JSON object to a JSON format string and write to a file_
@@ -227,6 +267,7 @@ JDKSObject_load = jdks.load(Jfilepath)
227267
print(JDKSObject_load.getObject())
228268
# OUTPUT: {'author': 'truocphan', 'version': 'latest', 'release': []}
229269
```
270+
---
230271

231272
### JSON_DUPLICATE_KEYS.flatten(`separator`="||", `parse_index`="$", `ordered_dict`=False, `_isDebug_`=True)
232273
_Flatten a JSON object to a single key-value pairs_
@@ -249,6 +290,7 @@ JDKSObject.flatten()
249290
print(JDKSObject.getObject())
250291
# OUTPUT: {'author': 'truocphan', 'version': '22.3.3', 'version{{{_2_}}}': 'latest', 'release||$0$||version': 'latest', 'snapshot||author': 'truocphan', 'snapshot||version': '22.3.3', 'snapshot||release||$0$||version': 'latest'}
251292
```
293+
---
252294

253295
### JSON_DUPLICATE_KEYS.unflatten(`separator`="||", `parse_index`="$", `ordered_dict`=False, `_isDebug_`=True)
254296
_Unflatten a flattened JSON object back to a JSON object_
@@ -257,4 +299,18 @@ _Unflatten a flattened JSON object back to a JSON object_
257299
- `ordered_dict`: preserves the order in which the Keys are inserted
258300
- `_isDebug_`: Show/ Hide debug error messages
259301
```python
260-
```
302+
import json_duplicate_keys as jdks
303+
304+
Jstr = '{"author": "truocphan", "version": "22.3.3", "version": "latest", "release||$0$||version": "latest", "snapshot||author": "truocphan", "snapshot||version": "22.3.3", "snapshot||release||$0$||version": "latest"}'
305+
306+
JDKSObject = jdks.loads(Jstr)
307+
308+
print(JDKSObject.getObject())
309+
# OUTPUT:
310+
311+
JDKSObject.unflatten()
312+
313+
print(JDKSObject.getObject())
314+
# OUTPUT:
315+
```
316+
---

0 commit comments

Comments
 (0)