/randomjson

Generate json randomly according to the conditions

Primary LanguageJavaScriptMIT LicenseMIT

中文文档在下面

randomjson

Generate random json according to condition json

how to use

install

npm install randomjson

Or direct reference to the output file: <script src = "dist.js"> </ script>

use

    // In the amd, cmd environment, reference packages are not required in the browser
    var randomjson = require('randomjson');
    
    var modelJson = {
        "code": "00",
        "numberCode": "<@[10000,20000]>",
        "msg2": "<@string{2,3}>",
        "logo": "<@image{100,100}>",
        "result": {
            "pList<@{1,3}>":[ 
                {
                    "indexToString": "<@index><@>",
                    "index": "<@index>",
                    "id": "<@[1-5]>", 
                    "price": "<@float>",
                    "name": "name<@index>",
                    "person": "person<@index>",
                    "address": "California NO.<@index>",
                    "mobile": "1<@number{10}>",
                    "tel": "<@number{4}>-<@number{8}>",
                    "list": [
                        {
                            "auditKey": 1,
                            "auditValue": "<@[0,1,2]>"
                        }, 
                        {
                            "auditKey": 2,
                            "auditValue": "<@[0,1,2]>"
                        }
                    ]
                }
            ]
        }
    }
    var myJson = randomjson(modelJson);
    
    The value of myJson might be:
    
    {
        "code": "00",
        "numberCode": 20000,
        "msg2": "hrj",
        "logo": "https://dummyimage.com/100x100",
        "result": {
            "pList": [
                {
                    "indexToString": "1",
                    "index": 1,
                    "id": 2,
                    "price": 37.49,
                    "name": "name1",
                    "person": "person1",
                    "address": "California NO.1",
                    "mobile": "18737211377",
                    "tel": "2526-64023718",
                    "list": [
                        {
                            "auditKey": 1,
                            "auditValue": 1
                        },
                        {
                            "auditKey": 2,
                            "auditValue": 2
                        }
                    ]
                }
            ]
        }
    }
    

If you need to compile to dist

    npm install -g webpack
    webpack --entry ./index.js --output-path dist --output-filename dist.js --output-library randomjson --output-library-target umd

Lexical

   Starting with <@, ending with>, the middle content is randomjson's lexical  

Lexical definition

data type

"<@number>": the data type is number

"<@string>": the data type is string

"<@null>": the data type is null

"<@boolean>": the data type is boolean

"<@chinese>": chinese string

"<@float {number1, number2}>": Floating point number1 represents the integer number of digits, number2 represents the number of decimal places, defaults to 2

"<@image {width, height}>": Generate the picture width to generate the image width, height to generate the picture height, the default is 400,400

"<@index>": The position of the element in the array, starting at 1

quantifier

   {minNumber, maxNumber}: At least minNumber, up to maxNumber

{minNumber,}: At least minNumber

   {number}: A total of number

If it is float, minNumber, maxNumber represents the number of bits of integer and fractional parts

     If it is imgae, minNumber, maxNumber represents the picture width height

Multiple options

   You can use "|" to separate multiple options, the random value is one of the values for the string

Numeric range

     [1, 2, 3] represents one of 1, 2, and 3, and the value is a number      [1-90] represents an int value from 1 to 90, and the value is a number

[1.00-3.00] represents 2 decimal places between 1 and 3

    

Numeric to string

Place the placeholder after the number type

  The following are the same as the

    "IndexToString": "<@index> <@>"

Length description

Non-array, the length of the value string, for example: "ret": "<@number {4}>"

When the value is an array, the length is in the key, for example:
             "P11<@{2,5}>": [{
                 "P8": "12312",
                 "P9": ["<@string{4,7}>"],
                 "P10": "<@string>"
             }]

randomjson

根据条件json生成随机json

如何使用

安装

   npm install randomjson

   或者直接引用产出文件:<script src="dist.js"></script>

用法

    // 在amd,cmd环境中,引用包,在浏览器中无需引用
    
    var randomjson = require('randomjson');
    
    // 模型
    var modelJson = {
        "code": "00",
        "numberCode": "<@[10000,20000]>",
        "msg": "<@chinese{12,50}>",
        "msg2": "<@string{2,3}>",
        "logo": "<@image{100,100}>",
        "result": {
            "pList<@{1,3}>":[ 
                {
                    "indexToString": "<@index><@>",
                    "index": "<@index>",
                    "id": "<@[1-5]>", 
                    "price": "<@float>",
                    "name": "公司名称<@index>",
                    "person": "李文武<@index>",
                    "address": "北京市海淀区西三旗",
                    "mobile": "1<@number{10}>",
                    "tel": "<@number{4}>-<@number{8}>",
                    "list": [
                        {
                            "auditKey": 1,
                            "auditValue": "<@[0,1,2]>"
                        }, 
                        {
                            "auditKey": 2,
                            "auditValue": "<@[0,1,2]>"
                        }
                    ]
                }
            ]
        }
    }
    // 根据模型生成json
    var myJson = randomjson(modelJson);
    
    根据上边模型生成的json可能是这样:
    
    {
        "code": "00",
        "numberCode": 10000,
        "msg": "加义为边平压你治提用根治问求只或程干立农资特",
        "msg2": "dv",
        "logo": "https://dummyimage.com/100x100",
        "result": {
            "pList": [
                {
                    "indexToString": "1",
                    "index": 1,
                    "id": 2,
                    "price": 93.78,
                    "name": "公司名称1",
                    "person": "李文武1",
                    "address": "北京市海淀区西三旗",
                    "mobile": "17929438781",
                    "tel": "1148-56055642",
                    "list": [
                        {
                            "auditKey": 1,
                            "auditValue": 0
                        },
                        {
                            "auditKey": 2,
                            "auditValue": 1
                        }
                    ]
                },
                {
                    "indexToString": "2",
                    "index": 2,
                    "id": 5,
                    "price": 29.49,
                    "name": "公司名称2",
                    "person": "李文武2",
                    "address": "北京市海淀区西三旗",
                    "mobile": "17826945504",
                    "tel": "7298-46226026",
                    "list": [
                        {
                            "auditKey": 1,
                            "auditValue": 0
                        },
                        {
                            "auditKey": 2,
                            "auditValue": 0
                        }
                    ]
                }
            ]
        }
    }
    

如果你需要编译到dist

    npm install -g webpack
    webpack --entry ./index.js --output-path dist --output-filename dist.js --output-library randomjson --output-library-target umd

例子 :http://zhoushengfe.com/random/example/randomjson.html  可以在线编辑查看

词法

   以<@开始,以>结束,中间内容是randomjson的词法

模型定义

数据类型

   "<@number>": number类型

   "<@string>": string类型

   "<@null>": null

   "<@boolean>": boolean类型

   "<@chinese>": 中文字符串

   "<@float{number1,number2}>": 浮点数 number1代表整数位数,number2代表小数位数,默认都为2

    "<@image{width,height}>": 生成图片 width为生成图片宽度,height为生成图片高度,默认为400,400

   "<@index>": 元素在数组中的位置,从1开始

量词

   {minNumber, maxNumber}: minNumber到maxNumber个

   {minNumber,}: 最少minNumber

   {number}: number个

   如果是float,minNumber, maxNumber表示整数部分和小数部分的位数

   如果是imgae,minNumber, maxNumber表示图片宽度高度    

随机生成其中之一

   你可以使用“|” 分离多个选项,随机值是其中之一,值为字符串

数字范围

   [1,2,3] 表示1,2,3中的一个,值为数字

   [1-90] 表示1到90中的一个int值,值为数字

[1.00-3.00] 表示1到3之间的2位小数

数字转字符串

   在number类型后加空的占位符   "indexToString": "<@index><@>"

量词定义注意点

   值为非数组时,长度在value字符串里,例如:"ret": "<@number{4}>"

   值为数组时,长度在key里,例如:

            "p11<@{2,5}>": [{
                "p8": "12312",
                "p9": ["<@string{4,7}>"],
                "p10": "<@string>"
            }]

QQ群:533916703