Java 将JSON序列化为Scala case类
我需要将JSON序列化为scala case类。这不是关于JSON序列化的问题,而是关于scala中的类映射的问题 JSON的示例:Java 将JSON序列化为Scala case类,java,json,scala,Java,Json,Scala,我需要将JSON序列化为scala case类。这不是关于JSON序列化的问题,而是关于scala中的类映射的问题 JSON的示例: { “id”:98433, “姓名”:“圣克鲁斯·布朗森”, “供应商”:{ “id”:344, “名称”:“圣克鲁斯” }, “类别”:{ “id”:132, “名称”:“自行车” }, “注释”:“最佳下坡循环”, “说明”:“富文本在此”, “分类”:{ “id”:12, “名称”:“138个周期” }, “财产”:[{ “id”:84436, “集团”:{
{
“id”:98433,
“姓名”:“圣克鲁斯·布朗森”,
“供应商”:{
“id”:344,
“名称”:“圣克鲁斯”
},
“类别”:{
“id”:132,
“名称”:“自行车”
},
“注释”:“最佳下坡循环”,
“说明”:“富文本在此”,
“分类”:{
“id”:12,
“名称”:“138个周期”
},
“财产”:[{
“id”:84436,
“集团”:{
“id”:19433,
“名称”:“暂停”
},
“名称”:“叉转”,
“说明”:“叉形转弯定义自行车悬架”,
“值”:“129mm”
}, {
“id”:84436,
“集团”:{
“id”:19433,
“名称”:“暂停”
},
“名称”:“叉转”,
“说明”:“叉形转弯定义自行车悬架”,
“值”:“129mm”
}, {
“id”:84436,
“集团”:{
“id”:19433,
“名称”:“暂停”
},
“名称”:“叉转”,
“说明”:“叉形转弯定义自行车悬架”,
“值”:“129mm”
}, {
“id”:84436,
“集团”:{
“id”:19433,
“名称”:“暂停”
},
“名称”:“叉转”,
“说明”:“叉形转弯定义自行车悬架”,
“值”:“129mm”
}],
“isGroup”:正确
}
我知道如何为顶级地图构建案例类:
case class ProductDocument(id: Long, name: String, annotation: String, description: String, isGroup: String) extends DocumentMap {
...
}
但我不知道如何为供应商、类别、属性等构建价值
我想将此JSON映射定义为一个类文件。对于scala JSON映射,您至少有两个选项: -它最初为Mongo提供了类似ORM的功能,但也只适用于JSON序列化(免责声明:我在Novus工作) -见“序列化”一节
好消息是,因为Scala案例类的结构已经被很好地理解,所以通常不必在JSON字段和案例类字段之间定义“映射”。正如Arne Claassen所描绘的那样,您只需编写与JSON文档的结构/字段相匹配的case类。对于scala JSON映射,您至少有两个选项: -它最初为Mongo提供了类似ORM的功能,但也只适用于JSON序列化(免责声明:我在Novus工作) -见“序列化”一节
好消息是,因为Scala案例类的结构已经被很好地理解,所以通常不必在JSON字段和案例类字段之间定义“映射”。正如Arne Claassen所描绘的那样,您只需编写与JSON文档的结构/字段相匹配的case类。对于scala JSON映射,您至少有两个选项: -它最初为Mongo提供了类似ORM的功能,但也只适用于JSON序列化(免责声明:我在Novus工作) -见“序列化”一节
好消息是,因为Scala案例类的结构已经被很好地理解,所以通常不必在JSON字段和案例类字段之间定义“映射”。正如Arne Claassen所描绘的那样,您只需编写与JSON文档的结构/字段相匹配的case类。对于scala JSON映射,您至少有两个选项: -它最初为Mongo提供了类似ORM的功能,但也只适用于JSON序列化(免责声明:我在Novus工作) -见“序列化”一节
好消息是,因为Scala案例类的结构已经被很好地理解,所以通常不必在JSON字段和案例类字段之间定义“映射”。正如Arne Claassen所描绘的那样,您只需编写与JSON文档的结构/字段相匹配的case类。每个嵌套的JSON对象都应定义为自己的case类,例如:
case class Vendor(id: Long, name: String)
case class ProductDocument(id: Long, ..., vendor: Vendor)
属性
将成为属性
案例类的列表
:
case class Property(id: Long, group: PropertyGroup, name: String, description: String, value: String)
case class PropertyGroup(id: Long, name: String)
case class ProductDocument(id: Long, ..., properties: List[Property])
这假设您正在使用序列化。每个嵌套的json对象都应该定义为它们自己的case类,例如:
case class Vendor(id: Long, name: String)
case class ProductDocument(id: Long, ..., vendor: Vendor)
属性
将成为属性
案例类的列表
:
case class Property(id: Long, group: PropertyGroup, name: String, description: String, value: String)
case class PropertyGroup(id: Long, name: String)
case class ProductDocument(id: Long, ..., properties: List[Property])
这假设您正在使用序列化。每个嵌套的json对象都应该定义为它们自己的case类,例如:
case class Vendor(id: Long, name: String)
case class ProductDocument(id: Long, ..., vendor: Vendor)
属性
将成为属性
案例类的列表
:
case class Property(id: Long, group: PropertyGroup, name: String, description: String, value: String)
case class PropertyGroup(id: Long, name: String)
case class ProductDocument(id: Long, ..., properties: List[Property])
这假设您正在使用序列化。每个嵌套的json对象都应该定义为它们自己的case类,例如:
case class Vendor(id: Long, name: String)
case class ProductDocument(id: Long, ..., vendor: Vendor)
属性
将成为属性
案例类的列表
:
case class Property(id: Long, group: PropertyGroup, name: String, description: String, value: String)
case class PropertyGroup(id: Long, name: String)
case class ProductDocument(id: Long, ..., properties: List[Property])
这假定您正在使用序列化