这里有新鲜出炉的精品教程,程序狗速度看过来!
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于 JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C, C++, C#, Java, JavaScript, Perl, Python 等)。这些特性使 JSON 成为理想的数据交换语言。
下面小编就为大家带来一篇 js 按条件生成随机 json:randomjson 实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
前端开发中,在做前后端分离的时候,经常需要手写 json 数据,有 3 个问题特别揪心:
1,数据是写死的,不能按一定的条件随机生成长度不一,内容不一的数据
2,写数组的时候,如果有很多条,需要一条一条地写,费时费力
3,mock 图片特别困难
randomjson 用来根据模型随机生成 json,mock json 数据的时候特别有用
github 地址:
https://github.com/finance-sh/randomjson
如何使用
# randomjson
根据条件生成 json 对应的随机 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": "北京市海淀区西三旗",
- "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
- }
- ]
- }
- ]
- }
- }
## 词法
以 <@开始,以> 结束,中间内容是 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 值,值为数字
### 数字转字符串
在 number 类型后加空的占位符 "indexToString": "<@index><@>"
### 量词定义注意点
值为非数组时,长度在 value 字符串里,例如:"ret": "<@number{4}>"
值为数组时,长度在 key 里,例如:
- "p11<@{2,5}>": [{
- "p8": "12312",
- "p9": ["<@string{4,7}>"],
- "p10": "<@string>"
- }]
github 地址:
https://github.com/finance-sh/randomjson
以上这篇 js 按条件生成随机 json:randomjson 实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0511/334251.html