js按條件生成隨機(jī)json:randomjson實(shí)現(xiàn)方法
前端開發(fā)中,在做前后端分離的時(shí)候,經(jīng)常需要手寫json數(shù)據(jù),有3個(gè)問(wèn)題特別揪心:
1,數(shù)據(jù)是寫死的,不能按一定的條件隨機(jī)生成長(zhǎng)度不一,內(nèi)容不一的數(shù)據(jù)
2,寫數(shù)組的時(shí)候,如果有很多條,需要一條一條地寫,費(fèi)時(shí)費(fèi)力
3,mock圖片特別困難
randomjson用來(lái)根據(jù)模型隨機(jī)生成json,mock json數(shù)據(jù)的時(shí)候特別有用
github地址:
https://github.com/finance-sh/randomjson
如何使用
# randomjson
根據(jù)條件生成json對(duì)應(yīng)的隨機(jī)json
## 如何使用
### 安裝
npm install randomjson
### 用法
// 安裝 npm install randomjson // 用法 // 引用包 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": "北京市海淀區(qū)西三旗", "mobile": "1<@number{10}>", "tel": "<@number{4}>-<@number{8}>", "list": [ { "auditKey": 1, "auditValue": "<@[0,1,2]>" }, { "auditKey": 2, "auditValue": "<@[0,1,2]>" } ] } ] } } // 根據(jù)模型生成json var myJson = randomjson(modelJson); 根據(jù)上邊模型生成的json可能是這樣: { "code": "00", "numberCode": 10000, "msg": "加義為邊平壓你治提用根治問(wèn)求只或程干立農(nóng)資特", "msg2": "dv", "logo": "https://dummyimage.com/100x100", "result": { "pList": [ { "indexToString": "1", "index": 1, "id": 2, "price": 93.78, "name": "公司名稱1", "person": "李文武1", "address": "北京市海淀區(qū)西三旗", "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": "北京市海淀區(qū)西三旗", "mobile": "17826945504", "tel": "7298-46226026", "list": [ { "auditKey": 1, "auditValue": 0 }, { "auditKey": 2, "auditValue": 0 } ] } ] } }
## 詞法
以<@開始,以>結(jié)束,中間內(nèi)容是randomjson的詞法
## 模型定義
### 數(shù)據(jù)類型
"<@number>": number類型
"<@string>": string類型
"<@null>": null
"<@boolean>": boolean類型
"<@chinese>": 中文字符串
"<@float{number1,number2}>": 浮點(diǎn)數(shù) number1代表整數(shù)位數(shù),number2代表小數(shù)位數(shù),默認(rèn)都為2
"<@image{width,height}>": 生成圖片 width為生成圖片寬度,height為生成圖片高度,默認(rèn)為400,400
"<@index>": 元素在數(shù)組中的位置,從1開始
### 量詞
{minNumber, maxNumber}: minNumber到maxNumber個(gè)
{minNumber,}: 最少minNumber
{number}: number個(gè)
如果是float,minNumber, maxNumber表示整數(shù)部分和小數(shù)部分的位數(shù)
如果是imgae,minNumber, maxNumber表示圖片寬度高度
### 隨機(jī)生成其中之一
你可以使用“|” 分離多個(gè)選項(xiàng),隨機(jī)值是其中之一,值為字符串
### 數(shù)字范圍
[1,2,3] 表示1,2,3中的一個(gè),值為數(shù)字
[1-90] 表示1到90中的一個(gè)int值,值為數(shù)字
### 數(shù)字轉(zhuǎn)字符串
在number類型后加空的占位符
"indexToString": "<@index><@>"
### 量詞定義注意點(diǎn)
值為非數(shù)組時(shí),長(zhǎng)度在value字符串里,例如:"ret": "<@number{4}>"
值為數(shù)組時(shí),長(zhǎng)度在key里,例如:
"p11<@{2,5}>": [{ "p8": "12312", "p9": ["<@string{4,7}>"], "p10": "<@string>" }]
github地址:
https://github.com/finance-sh/randomjson
以上這篇js按條件生成隨機(jī)json:randomjson實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用electron-builder及electron-updater給項(xiàng)目配置自動(dòng)更新
這篇文章主要介紹了如何使用electron-builder及electron-updater給項(xiàng)目配置自動(dòng)更新,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Ajax提交與傳統(tǒng)表單提交的區(qū)別說(shuō)明
本篇文章主要是對(duì)Ajax提交與傳統(tǒng)表單提交的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02JavaScript實(shí)現(xiàn)星級(jí)評(píng)價(jià)效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)星級(jí)評(píng)價(jià)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05bootstrap日期控件問(wèn)題(雙日期、清空等問(wèn)題解決)
這篇文章主要介紹了bootstrap日期控件(雙日期、清空等問(wèn)題解決)相關(guān)知識(shí),需要的朋友可以參考下2017-04-04js實(shí)現(xiàn)內(nèi)置計(jì)時(shí)器
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)內(nèi)置計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12如何使用JavaScript快速創(chuàng)建一個(gè)1到100的數(shù)組
平時(shí)寫代碼時(shí),我們會(huì)生產(chǎn)一些測(cè)試用的數(shù)組數(shù)據(jù),比如[1,100]的數(shù)組值,下面這篇文章主要給大家介紹了關(guān)于如何使用JavaScript快速創(chuàng)建一個(gè)1到100數(shù)組的相關(guān)資料,需要的朋友可以參考下2022-08-08