如何在Java中生成随机的JSON字符串?

4
我想测试Apache Kafka的一个功能。因此,我需要在Java中生成随机JSON字符串。(我的生产数据是JSON格式。)
我在谷歌上搜索了一下,找到了以下网站:
- 如何生成随机字母数字字符串? - 如何在Java中生成JSON字符串? 但这些并不是最好的答案。
在Ruby中,gem faker可以生成假数据。 在Java中,有哪个库可以生成假数据?哪个库可以生成假JSON字符串?

我曾经有完全相同的需求,最终自己构建了一个库 - https://github.com/mangatmodi/RandomJson然而,如果你想将数据流式传输到Kafka,你可以使用以下方法,而不是使用库和编写自己的代码 - https://github.com/everwatchsolutions/json-data-generator - Mangat Rai Modi
2个回答

2

看看这个开源的Java库 randomizer。 通过使用YOUR_MODEL_CLASS注释,可以实现随机数据生成。

Generator<YOUR_MODEL_CLASS> generator = new Generator<>(YOUR_MODEL_CLASS.class);
List<YOUR_MODEL_CLASS> fakeObj = generator.generate(NO_OF_RECORDS);
Gson gson = new Gson();
String jsonString = gson.toJson(fakeObj);

有许多内置的注释可用,我们可以在 YOUR_MODEL_CLASS 中定义的实例变量上设置它们。请查看库页面上的指南。


1
你可以使用mockneat来实现这个。它是一个专门用于生成各种“假”数据的库。查看文档以了解您可以如何“伪造”和如何操作。
还有一个维基页面,向您展示如何生成随机JSON。
MockNeat mockNeat = MockNeat.threadLocal();
Gson gson = new GsonBuilder()
                        .setPrettyPrinting()
                        .create();

String json = mockNeat
                     .reflect(UserProfile.class)
                     .field("name", mockNeat.names().full())
                     .field("userName", mockNeat.users())
                     .field("email", mockNeat.emails())
                     .field("profiles",
                                mockNeat.reflect(Profile.class)
                                        .field("profileId", mockNeat.ints().range(100, 1000))
                                        .field("profileAdded", mockNeat.localDates().toUtilDate())
                                        .list(2))
                     .map(gson::toJson) /* Transforms the UserProfile class into a 'pretty' json. */
                     .val();

System.out.println(json);

而给定的结果是(当然,每次结果都是不同的):
{
  "name": "Cecila Starbird",
  "userName": "moistben",
  "email": "randiexyst@hotmail.co.uk",
  "profiles": [
    {
      "profileId": 964,
      "profileAdded": "Mar 19, 1973 12:00:00 AM"
    },
    {
      "profileId": 854,
      "profileAdded": "Jun 3, 1978 12:00:00 AM"
    }
  ]
}

稍后编辑:
生成JSON的新首选方式如下:https://www.mockneat.com/tutorial/#json-and-xml 免责声明:我是该库的作者。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接