我想测试一个apache kafka的功能。所以我需要在Java中生成随机的JSON字符串。(我的生产数据是JSON格式。)
我谷歌,我找到了网站:
这些不是最好的答案。
在ruby中,the gem faker可以生成虚假数据。
在Java中,哪些库可以生成虚假数据?什么库可以生成假的JSON字符串?
答案 0 :(得分: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 :(得分:2)
您可以使用mockneat来执行此操作。它是一个专门生成各种“假”数据的库。查看the documentation,了解您可以“伪造”的内容以及操作方式。
有wiki page向您展示如何生成随机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"
}
]
}
免责声明:我是图书馆的作者。