Bulk set properties recursively in huge, complex JSON string trees with a robust...
source link: https://github.com/Andrew-Kang-G/json-knife
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
json-knife
Overview
Mass update certain key-values recursively in huge, complex JSON string trees without using JSON.parse() & self-calling function.
Zero dependency, 7KB
Installation
For ES5 users,
<html> <body> <script src="../dist/json-knife.bundle.js"></script> <script type="text/javascript"> </script> </body> </html>
For ES6 npm users, do 'npm install --save json-knife' on console.
import Pattern from 'json-knife';
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": [{}] }] }
Please inform me of the source related things by leaving issues on Github or emailing me at [email protected] .
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK