我的项目使用JAXB将XSD(XML模式)转换为POJO,并使用cxf将填充的类转换为JSON。有没有一个工具可以获取模式,并为我生成一个示例JSON文档?最好是命令行,或者是5行Java代码段。
从功能上来说,我想要一些类似于SoapUI在给它提供WSDL时所做的事情(即,除其他外,从架构中生成一个示例请求,并用预填充所有字符串?
问号)。
我基本上想要一种快速的方法来检查XSD模式的更改是否产生了我想要的JSON结构(因此我关心的是结构和类型,而不是值)。
注意:我不想创建JSON模式,也不能用JSON模式代替XSD。
您可以直接从使用jaxb创建的类创建json。
jaxb创建pojo类。
任何json库都可以从pojo实例创建json。
以下是步骤:
xjc
字符串
这里有一个更快的jackson的例子:
ObjectMapper mapper = new ObjectMapper();
// PojoClass is the class created with xjc from your xsd
PojoClass pojoInstance = new PojoClass();
// Populate pojoInstance as needed
String jsonString = mapper.writeValueAsString(pojoInstance);
System.out.println(jsonString); // Print the pojoInstance as json string
创建随机对象可以使用类似于以下代码的代码来完成。请注意,此代码仅创建基元类型和具有基元类型或对其他对象的引用的对象。对于数组,列表,地图你需要增强它。
public class RandomObjectFiller {
private Random random = new Random();
public <T> T createAndFill(Class<T> clazz) throws Exception {
T instance = clazz.newInstance();
for(Field field: clazz.getDeclaredFields()) {
field.setAccessible(true);
Object value = getRandomValueForField(field);
field.set(instance, value);
}
return instance;
}
private Object getRandomValueForField(Field field) throws Exception {
Class<?> type = field.getType();
if(type.equals(Integer.TYPE) || type.equals(Integer.class)) {
return random.nextInt();
} else if(type.equals(Long.TYPE) || type.equals(Long.class)) {
return random.nextLong();
} else if(type.equals(Double.TYPE) || type.equals(Double.class)) {
return random.nextDouble();
} else if(type.equals(Float.TYPE) || type.equals(Float.class)) {
return random.nextFloat();
} else if(type.equals(String.class)) {
return UUID.randomUUID().toString();
}
return createAndFill(type);
}
}
前面使用此类的示例是以下代码:
ObjectMapper mapper = new ObjectMapper();
RandomObjectFiller randomObjectFiller = new RandomObjectFiller();
// PojoClass is the class created with xjc from your xsd
PojoClass pojoInstance = randomObjectFiller.createAndFill(PojoClass.class);
String jsonString = mapper.writeValueAsString(pojoInstance);
System.out.println(jsonString); // Print the pojoInstance as json string
本文向大家介绍Python快速从注释生成文档的方法,包括了Python快速从注释生成文档的方法的使用技巧和注意事项,需要的朋友参考一下 作为一个标准的程序猿,为程序编写说明文档是一步必不可少的工作,如何才能写的又好又快呢,下面我们就来详细探讨下吧。 今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等。 一看别人专业的大牛们写的文档多
本文向大家介绍Codeigniter生成Excel文档的简单方法,包括了Codeigniter生成Excel文档的简单方法的使用技巧和注意事项,需要的朋友参考一下 之前看了使用PHPExcel中导出数据到Excel文件的方法,但是似乎比较复杂。icech找到了一个针对Codeigniter的类:CI-Excel-Generation-Library,使用方法十分简单。 1、下载CI-Excel-G
问题内容: 我正在寻找一个有关如何通过jQuery.Ajax检索JSon数据时如何使用SlickGrid的简单示例。我也找不到SlickGrid插件的任何文档,并且想知道我是否在错误的位置。任何帮助我开始使用SlickGrid的帮助将不胜感激。 问题答案: 一个asp.net页面中的例子。Web服务返回一个需要与网格列匹配的json字符串。 … 等等 在Asp.Net中,默认情况下json字符串的
本文向大家介绍Android 实现夜间模式的快速简单方法实例详解,包括了Android 实现夜间模式的快速简单方法实例详解的使用技巧和注意事项,需要的朋友参考一下 ChangeMode 项目地址:ChangeMode Implementation of night mode for Android. 用最简单的方式实现夜间模式,支持ListView、RecyclerView。 Preview Us
本文向大家介绍PHP单例模式是什么 php实现单例模式的方法,包括了PHP单例模式是什么 php实现单例模式的方法的使用技巧和注意事项,需要的朋友参考一下 一、什么是单例模式? 1、含义 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。 2、单例模式的三个要点: (1).
本文向大家介绍java使用dom4j生成与解析xml文档的方法示例,包括了java使用dom4j生成与解析xml文档的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java使用dom4j生成与解析xml文档的方法。分享给大家供大家参考,具体如下: xml是一种新的数据格式,主要用于数据交换。我们所用的框架都有涉及到xml。因此解析或生成xml对程序员也是一个技术难点。这里就用do