js按條件生成隨機(jī)json:randomjson實(shí)現(xiàn)方法
前端開(kāi)發(fā)中,在做前后端分離的時(shí)候,經(jīng)常需要手寫(xiě)json數(shù)據(jù),有3個(gè)問(wèn)題特別揪心:
1,數(shù)據(jù)是寫(xiě)死的,不能按一定的條件隨機(jī)生成長(zhǎng)度不一,內(nèi)容不一的數(shù)據(jù)
2,寫(xiě)數(shù)組的時(shí)候,如果有很多條,需要一條一條地寫(xiě),費(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": "公司名稱(chēng)<@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": "公司名稱(chēng)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": "公司名稱(chēng)2",
"person": "李文武2",
"address": "北京市海淀區(qū)西三旗",
"mobile": "17826945504",
"tel": "7298-46226026",
"list": [
{
"auditKey": 1,
"auditValue": 0
},
{
"auditKey": 2,
"auditValue": 0
}
]
}
]
}
}
## 詞法
以<@開(kāi)始,以>結(jié)束,中間內(nèi)容是randomjson的詞法
## 模型定義
### 數(shù)據(jù)類(lèi)型
"<@number>": number類(lèi)型
"<@string>": string類(lèi)型
"<@null>": null
"<@boolean>": boolean類(lèi)型
"<@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開(kāi)始
### 量詞
{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類(lèi)型后加空的占位符
"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)文章
layui點(diǎn)擊左側(cè)導(dǎo)航欄,實(shí)現(xiàn)不刷新整個(gè)頁(yè)面,只刷新局部的方法
今天小編就為大家分享一篇layui點(diǎn)擊左側(cè)導(dǎo)航欄,實(shí)現(xiàn)不刷新整個(gè)頁(yè)面,只刷新局部的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
一直都需要的復(fù)制到系統(tǒng)剪貼板之IE,firefox兼容版
一直都需要的復(fù)制到系統(tǒng)剪貼板之IE,firefox兼容版...2007-09-09
JavaScript實(shí)現(xiàn)音樂(lè)導(dǎo)航效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)音樂(lè)導(dǎo)航效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
編寫(xiě)高性能的JavaScript 腳本的加載與執(zhí)行
把腳本放在body中,當(dāng)瀏覽器遇見(jiàn)<script>標(biāo)簽時(shí), 瀏覽器不知道腳本會(huì)插入文本還是html標(biāo)簽,因此瀏覽器會(huì)停止分析html頁(yè)面而去執(zhí)行腳本。2010-04-04
JavaScript 類(lèi)型轉(zhuǎn)換的詳細(xì)實(shí)現(xiàn)
本文主要介紹了JavaScript 類(lèi)型轉(zhuǎn)換的詳細(xì)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Javascript在IE下設(shè)置innerHTML時(shí)出現(xiàn)未知的運(yùn)行時(shí)錯(cuò)誤的解決方法
程序代碼思路大致如下,想動(dòng)態(tài)的改變tr標(biāo)簽的innerHTML內(nèi)容,但是IE卻報(bào)未知的運(yùn)行時(shí)錯(cuò)誤2011-01-01

