Bulk set properties recursively in huge, complex JSON string trees with a robust regex base...

栏目: IT技术 · 发布时间: 6年前

内容简介:Mass update certain key-values recursively in huge, complex JSON string trees without using JSON.parse() & self-calling function.Zero dependency, 7KB

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

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 .


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法设计与分析

算法设计与分析

张德富 / 2009-8 / 36.00元

《算法设计与分析》主要取材于算法设计与分析领域的经典内容,并介绍了算法设计的发展趋势。内容主要包括非常经典的算法设计技术,例如递归与分治、动态规划、贪心、回溯、分支限界、图算法,也包括了一些高级的算法设计主题,例如网络流和匹配、启发式搜索、线性规划、数论以及计算几何。在算法分析方面,介绍了概率分析以及最新的分摊分析和实验分析方法。在算法的理论方面,介绍了问题的下界、算法的正确性证明以及NP完全理论......一起来看看 《算法设计与分析》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具