溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

js如何按條件生成隨機(jī)json:randomjson

發(fā)布時(shí)間:2021-07-07 13:46:37 來(lái)源:億速云 閱讀:156 作者:小新 欄目:web開(kāi)發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)js如何按條件生成隨機(jī)json:randomjson,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

前端開(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í)候特別有用

如何使用

# 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>"
      }]

關(guān)于“js如何按條件生成隨機(jī)json:randomjson”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI