DEV Community

Andrew Kang-G
Andrew Kang-G

Posted on • Originally published at github.com

Mass Update certain key-values recursively in huge, complex JSON string trees without using JSON.parse().

https://github.com/Andrew-Kang-G/json-knife

Mass Update certain key-values recursively in huge, complex JSON string trees
without using JSON.parse() & self-calling function.

Zero dependency, 7KB

Syntax & Usage

Very simple to use. Now we are going to set all 'Mike{[Gentleman]}' to null in the sample JSON string.

 /** * @brief * Mass Update certain key-values recursively in huge, complex JSON string trees * @author Andrew Kang * @param original string required (must be JSON string) * @param key string required * @param value string or boolean or number or null required * @return string */ // IMPORTANT : the variable 'original' should be valid JSON. // You can test your JSON string source like here.  // https://jsonformatter.curiousconcept.com/ var result = Pattern.sculptJson(original, 'Mike{[Gentleman]}', null); // You can convert the result string to an object type. var resultObj = JSON.parse(result); 

[Original source]

var original =

{ "prob\"lems": [{ "classes": [{ "medications": [{ "medicationsClasses": [{ "Mike {[Gentleman]}": [{ "associatedDrug": [{ "name": "asprin", "dose": 35.3, "strength": "500 mg", "className" : false }], "Mike {[Gentleman]}": [{ "name": "somethingElse", "dose": "", "strength": "500 mg", "friends": { "self": { "Mike {[Gentleman]}": "33", "names": ["aa"] } } }] }], "Judy": [{ "associatedDrug": [{ "name": "asprin", "dose": "", "strength": "500 mg", "friends": ["Mike {[Gentleman]}"] }], "associatedDrug#2": [{ "name": "somethingElse", "dose": "", "strength": "500 mg" }], "friends": [{"Mike {[Gentleman]}": null}, {"Mike {[Gentleman]}": [["c[ 3\"5ool", 35], ["ca],[1\"3lm"], 53]}, "Jackson", "Mike {[Gentleman]}"] }] }] }], "classNameMissed": [{ "Mike {[Gentleman]}": "missing_value" }] }], "className": [{}] }] } 

[Result] - string type

{ "prob\"lems": [{ "classes": [{ "medications": [{ "medicationsClasses": [{ "Mike {[Gentleman]}": null, "Judy": [{ "associatedDrug": [{ "name": "asprin", "dose": "", "strength": "500 mg", "friends": ["Mike {[Gentleman]}"] }], "associatedDrug#2": [{ "name": "somethingElse", "dose": "", "strength": "500 mg" }], "friends": [{"Mike {[Gentleman]}": null}, {"Mike {[Gentleman]}": null}, "Jackson", "Mike {[Gentleman]}"] }] }] }], "classNameMissed": [{ "Mike {[Gentleman]}": null }] }], "className": [{}] }] } 

Top comments (0)