首页 > 代码库 > 按条件生成j随机json包:randomjson

按条件生成j随机json包:randomjson

前端开发中,在做前后端分离的时候,经常需要手写json数据,有2个问题特别揪心:

1,数据是写死的,不能按一定的条件随机生成长度不一,内容不一的数据

2,写数组的时候,如果有很多条,需要一条一条地写,费时费力

randomjson用来根据模型随机生成json,mock json数据的时候特别有用

github地址:

https://github.com/finance-sh/randomjson

如何使用

安装

   npm install randomjson

用法

    // 引用包
    var randomjson = require(‘randomjson‘);
    // 模型
    modelJson = {
        "ret": "200",
        "msg": "<@string{1,10}|number>",
        "p1": "<@null>",
        "info": "<@chinese>",
        "p2": "<@boolean>",
        "p7": {
            "p11<@{2,5}>": [
                {
                    "p8": "12312",
                    "p9": ["<@string{4,7}>"],
                    "p10": "<@string>"
                }
            ]
        },
        "data<@{1,10}>": [
            {
                "p8": "12312",
                "p9": 7777,
                "p10": "<@string>"
            }
        ],
        "p15": "<@number{4}>-<@number{2}>-<@number{2}>"
    }
    // 根据模型生成json
    var myJson = randomjson(modelJson);
    
    根据上边模型生成的json可能是这样:
    
    {
        "ret": 1708,
        "msg": "This Ec",
        "p1": null,
        "info": "集中第六版的发展始于2",
        "p2": true,
        "p7": {
            "p11": [{
                "p8": "12312",
                "p9": ["This"],
                "p10": "This Ecma Standa"
            }, {
                "p8": "12312",
                "p9": ["This"],
                "p10": "This Ecma Standa"
            }, {
                "p8": "12312",
                "p9": ["This E"],
                "p10": "This "
            }]
        },
        "data": [{
            "p8": "12312",
            "p9": 7777,
            "p10": "This Ecma St"
        }, {
            "p8": "12312",
            "p9": 7777,
            "p10": "This Ecma Standard d"
        }, {
            "p8": "12312",
            "p9": 7777,
            "p10": "This Ecma Standard d"
        }, {
            "p8": "12312",
            "p9": 7777,
            "p10": "This Ecma"
        }, {
            "p8": "12312",
            "p9": 7777,
            "p10": "This Ecma Standa"
        }, {
            "p8": "12312",
            "p9": 7777,
            "p10": "This E"
        }],
        "p15": "8302-82-22"
        }
    

词法

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

模型定义

数据类型

   "<@number>": number类型

   "<@string>": string类型

   "<@null>": null

   "<@boolean>": boolean类型

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

量词

   {minNumber, maxNumber}: minNumber到maxNumber个

   {minNumber,}: 最少minNumber

   {number}: number个

随机生成其中之一

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

量词定义注意点

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

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

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

目前项目还在继续开发中

 

github地址:

https://github.com/finance-sh/randomjson

按条件生成j随机json包:randomjson