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 .


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

查看所有标签

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

Web标准和SEO应用实践

Web标准和SEO应用实践

Aarron Walter / 李清 / 机械工业出版社 / 2008 / 36.00元

本书是关于搜索引擎优化和易发现性的技术指南。. 本书介绍Web标准、可访问性以及Ajax、API、Flash和微格式等内容,包括标记策略、服务器端策略、内容策略、建构易发现的博客、在网站内添加搜索、防止易发现性障碍、用邮件列表挽回流量、将易发现性付诸实践。 本书适合网站开发者与SEO技术业余爱好者等参考。 这不是为营销专家写的一本SEO的书。 针对那些想要找到网站的目标用户......一起来看看 《Web标准和SEO应用实践》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具