Gson
Javaオブジェクトをjsonにシリアライズ/デシリアライズするために使用しています。で表示したいのですUI
が、より良い説明を作成するためのスキーマが必要です。これにより、オブジェクトを編集し、実際よりも多くのデータを追加できます。json スキーマを提供
できますか?
他のフレームワークにその機能がありますか?Gson
27417 次
2 に答える
28
Gson ライブラリにはおそらくそのような機能は含まれていませんが、Jacksonライブラリとjackson-module-jsonSchemaモジュールで問題を解決することができます。たとえば、以下のクラスの場合:
class Entity {
private Long id;
private List<Profile> profiles;
// getters/setters
}
class Profile {
private String name;
private String value;
// getters / setters
}
このプログラム:
import java.io.IOException;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
import com.fasterxml.jackson.module.jsonSchema.factories.SchemaFactoryWrapper;
public class JacksonProgram {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
mapper.acceptJsonFormatVisitor(Entity.class, visitor);
JsonSchema schema = visitor.finalSchema();
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(schema));
}
}
以下のスキーマを出力します。
{
"type" : "object",
"properties" : {
"id" : {
"type" : "integer"
},
"profiles" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"value" : {
"type" : "string"
}
}
}
}
}
}
于 2013-07-22T11:43:22.060 に答える