我想要一个从JSON生成java源文件的实用程序.比如我们有
{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York"
}
}
Run Code Online (Sandbox Code Playgroud)
我们将它传递给实用程序,我们希望它生成这样的东西:
class Address {
JSONObject mInternalJSONObject;
Address (JSONObject json){
mInternalJSONObject = json;
}
String getStreetAddress () {
return mInternalJSONObject.getString("streetAddress");
}
String getCity (){
return mInternalJSONObject.getString("city");
}
}
class Person {
JSONObject mInternalJSONObject;
Person (JSONObject json){
mInternalJSONObject = json;
}
String getFirstName () {
return mInternalJSONObject.getString("firstName");
}
String getLastName (){
return mInternalJSONObject.getString("lastName");
}
Address getAddress (){
return Address(mInternalJSONObject.getString("address"));
}
}
Run Code Online (Sandbox Code Playgroud)
写起来并不难,但我确信有人已经这样做了.
是否有人知道我们可以通过Java从XML模式或XML模式生成JSON模式的工具或方法?
我确定之前有人这样做过:一个同事经历了制作JSON模式的麻烦,可以用来验证JSON对象; 但是,我很懒,只想从架构中生成一个"默认"的空JSON对象.是否有捷径可寻?
我想用Java做到这一点.
如果失败了,有没有办法基于这个模式生成Java类(不是在运行时)?
Muchas gracias,amigos.
类似于JAXB生成给定XSD的JAXB类,Jackson提供了任何实用程序来从XSD或JSON生成Jackson类。
JAXB类生成器已经为定义的XSD模式生成了一组类。例如,对于多态类型,JAXB具有以下注释,用于基于XML元素名称来标识名称。
@XmlElements({
@XmlElement(name = "Dog", type = Dog.class),
@XmlElement(name = "Cat", type = Cat.class)
})
protected List<Animal> animal;
Run Code Online (Sandbox Code Playgroud)
是否可以在Jackson中创建类似的类。即基于XML元素名称来标识类型。