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

如何在Java中生成随机JSON字符串?,java,json,testing,Java,Json,Testing,我想测试ApacheKafka的一个特性,所以我需要用Java生成随机JSON字符串(我的生产数据是JSON格式) 我用谷歌搜索了一下,发现了以下网站: 这些不是最好的答案 在ruby中,可以生成假数据 在Java中,哪个库可以生成假数据?哪个库可以生成假JSON字符串?签出这个开源java库。 基于您的_模型,可以使用注释生成随机数据 Generator<YOUR_MODEL_CLASS> generator = new Generator<>(YOUR_MOD

我想测试ApacheKafka的一个特性,所以我需要用Java生成随机JSON字符串(我的生产数据是JSON格式)

我用谷歌搜索了一下,发现了以下网站:

这些不是最好的答案

在ruby中,可以生成假数据


在Java中,哪个库可以生成假数据?哪个库可以生成假JSON字符串?

签出这个开源java库。 基于您的_模型,可以使用注释生成随机数据

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);
Generator Generator=新发电机(您的\u MODEL\u CLASS.CLASS);
List fakeObj=generator.generate(没有记录);
Gson Gson=新的Gson();
字符串jsonString=gson.toJson(fakeObj);
有许多内置注释可用,我们可以根据您的_MODEL_类中定义的实例变量进行设置。请参阅库页面上的指南。

您可以使用这些注释。这是一个专门生成各种“假”数据的图书馆。看看你能“伪造”什么以及如何伪造

有一个示例向您展示了如何生成随机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);
给出的结果是(当然,每次的结果都不同):

稍后编辑:

生成json的新首选方式如下:


免责声明:我是库的作者。

我有完全相同的要求,最终建立了自己的库-但是,如果您想将数据流传输到Kafka,您可以使用以下内容,而不是使用库和编写自己的代码-
{
  "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"
    }
  ]
}