Syntax Specification · nuysoft/Mock Wiki · GitHub

[
	{
		"list|5": [
			{
				"id|+1": 1,
				"goods_name": "@string('夏季专柜同款女鞋', 1, 3)",
				"goods_price": "@integer(60, 100)",
				"tags": ["舒适", "透气"],
				"inputVisible": false,
				"amount": 1,
				"inputValue": "",
				"checkState": false
			}
		]
	}
]

数据模板的每个属性由三部分构成:

  • 属性名 name
  • 生成规则 rule
  • 属性值 value 如 'name|rule':value 比如 'age|1-100':40 每条数据年龄随机在1至100之间,默认值是40.

rule

数字

累加ID:

  • 'name|+1':number。如 'id|+1':1 每条数据依次递增,且起始默认值是 1。

整数区间:

  • 'name|min-max':number。如 'discount|20-90':30,每条数据会随机在 [20,90] 中取整数值,默认值是 30 (意味着30一定会出现一次)

浮点区间:

  • 'name|min-max.dmin-dmax':number。如 'price|39-199.11-98':39.99,每条数据会随机在 [39.11, 199.98] 中取小数值,但小数位数也会只在 [.11, .98] 之间

布尔值

概率生成布尔值:

  • 'name|min-max': value。如 'isAvaliable|2-3':true,每条数据会随机取正值或负值,并且取正值的概率是 min/(min+max)(2/5) 五分之二的概率。默认为1时表示一半概率,'name|1':value

对象属性抽取

固定数量抽取

  • 'name|count': object
    示例:'selected|2': { "a": 1, "b": 2, "c": 3, "d": 4 }
    从属性值 object 中随机选取 count 个属性。

范围数量抽取

  • 'name|min-max': object
    示例:'selected|1-3': { "a": 1, "b": 2, "c": 3, "d": 4 }
    从属性值 object 中随机选取 minmax 个属性。

数组元素重复

固定次数重复

  • 'name|count': array
    示例:'data|3': [1, 2, 3]
    生成一个包含 array 中所有元素重复 count 次的数组。

范围次数重复

  • 'name|min-max': array
    示例:'data|1-5': [1, 2, 3]
    生成一个包含 array 中所有元素重复 minmax 次的数组。

数组元素选取

固定数量选取

  • 'name|count': array
    示例:'data|2': [1, 2, 3, 4]
    随机选取 array 中的 count 个元素组成一个新数组。

范围数量选取

  • 'name|min-max': array
    示例:'data|1-3': [1, 2, 3, 4]
    随机选取 array 中的 minmax 个元素组成一个新数组。

value

Mock.Random · nuysoft/Mock Wiki · GitHub

内置了很多常用的随机数据如名字,电子邮件等,同时也可以使用 Mock.Random 来单独生成特定单个数据,模式和类型是一样的。

在需要时还可以为 Mock.Random 扩展方法,然后在数据模板中通过 @扩展方法 引用。

姓名

Name · nuysoft/Mock Wiki · GitHub

  • 'name': '@name' 生成一个随机名字。
  • 'name': '@FIRST' 单独生成姓名,还有@middle, @last

可以组合使用:

  • 'full': '@first @middle @last' "full": "Charles Brenda Lopez"

日期/时间

Date · nuysoft/Mock Wiki · GitHub

  • 'date': '@date' 生成一个随机日期,格式为 YYYY-MM-DD
  • 'time': '@time' 生成一个随机时间,格式为 HH:mm:ss
  • 'datetime': '@datetime' 生成一个随机日期时间,格式为 YYYY-MM-DD HH:mm:ss

Email IP domain等

Web · nuysoft/Mock Wiki · GitHub

  • 'email': '@email' 生成一个随机电子邮件地址。

基础数据

Basic · nuysoft/Mock Wiki · GitHub

如布尔,整数,自然数,浮点数,字符,字符串,类似python中的range简单数组。