Skip to content
Bulk set properties recursively in huge, complex JSON string trees with a robust regex based engine.
JavaScript HTML
Branch: master
Clone or download
andrew85
Latest commit 7658580 Jan 18, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
public
src Change the regex of keyType simpler Jan 18, 2020
.gitignore
LICENSE Change the regex of keyType simpler Jan 18, 2020
README.md
gulpfile.babel.js first commit Jan 12, 2020
license.txt first commit Jan 12, 2020
package-lock.json first commit Jan 12, 2020
package.json Change the regex of keyType simpler Jan 18, 2020
webpack.config.babel.js

README.md

json-knife NPM version

Overview

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

Zero dependency, 7KB

LIVE DEMO

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 studypurpose@naver.com.

You can’t perform that action at this time.