【问题标题】:How to create `random` value added object for json array?如何为 json 数组创建“随机”增值对象?
【发布时间】:2017-09-13 18:52:02
【问题描述】:

根据客户点击50100500 我需要创建随机的json 对象。我不知道如何创建适合我的 json 要求的随机对象。

我知道我们一般是在创建数字或者字符串,但是如何自己创建一个hole json对象呢?

这是我需要随机化用户选项的对象:

{
    "deviceType": "Kiosi 891,891W Integrated Services Router G2",
    "label": "WAN-EDGE - MOCK1",
    "ip": "192.168.10.2",
    "softwareVersion": "15.1(4)M2",
    "nodeType": "device",
    "family": "Routers",
    "platformId": "CISCO891W-AGN-A-K9",
    "tags": [

    ],
    "role": "BORDER ROUTER",
    "roleSource": "AUTO",
    "customParam": {

    },
    "additionalInfo": {
      "macAddress": "44:d3:ca:1e:72:34"
    },
    "id": "373ce7a8-8843-43ac-879a-283f21abfed1"
}

任何人都可以帮助我将对象随机化,其中包含适合每个字段的文本或数字长度的所有字段。

提前致谢。

【问题讨论】:

  • 您必须提供更多信息。我假设你知道如何创建一个对象。为对象的属性分配随机值只是一小步:var obj = {prop1: Math.random(), prop2: Math.random(), ...}; 并将其转换为 JSON:var json = JSON.stringify(obj);。因此,我认为您的问题还有更多问题,但如果没有更多信息,就很难提供帮助。
  • 或许你可以使用fackerjs来处理(github.com/marak/Faker.js)

标签: javascript jquery json random


【解决方案1】:

下面的内容会有所帮助吗? http://www.json-generator.com/

快速示例

示例定义:将重复 (n) 定义为您可能需要的随机对象数。

[
  '{{repeat(1)}}',
  {
    deviceType: function (tags) {
      var routers = ['Router G1', 'Router G2'];
      return routers[tags.integer(0, routers.length - 1)];
    },
    label: function (tags) {
      var labels = ['Label 1', 'Label 2'];
      return labels[tags.integer(0, labels.length - 1)];
    },
    ip: '{{integer(1, 255)}}.{{integer(1, 255)}}.{{integer(1, 255)}}.{{integer(1, 255)}}',
    softwareVersion: '15.1(4)M2',
    nodeType: 'device',
    family: 'Routers',
    platformId: 'CISCO {{integer(100, 999)}} W-AGN-A-K{{integer(1, 9)}}',
    tags: [
      '{{repeat(3)}}',
      '{{lorem(1, "words")}}'
    ]
  }
]

【讨论】:

  • 需要自行添加。我无法将其保持为静态
  • 您可以创建 json 生成器定义,并且可以创建足够多的随机对象。我认为这是出于测试目的。
  • 是的,我同意。但是 JSON 的长度达到 100+,如果是这样,这并不容易。我也无法预测未来的长度。目的完全是为了测试目的
  • 不幸的是,我没有完整的领域知识来创建完整的随机化 json 对象。我在原始帖子中添加了一个示例。我的建议是您可以创建足够的重复,并且可以存储并从 json 数组中随机获取一个项目并作为对象的一部分返回。为此,您可能需要做一些自定义实现。
  • 我已经对此很熟悉了。但问题是,我不应该在我的应用程序中使用第三方链接。几乎就像我应该创建自己的随机对象,每个对象都与我的样本交叉设置。但是非常感谢您的指导并为我花费了时间。
【解决方案2】:

你想完全随机?我有!

class RandomObject {
    constructor(maxFieldsCount) {
        var count = Math.floor(Math.random() * (maxFieldsCount + 1));
        for (var i = 0; i < count; i++) {
            this[this.guid()] = this.guid();
        }
    }

    guid(): string {
        var s4 = () => Math.floor((1 + Math.random()) * 0x10000)
            .toString(16)
            .substring(1);
        return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
            s4() + '-' + s4() + s4() + s4();
    }
}

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2018-06-23
    相关资源
    最近更新 更多