如何“压平”复合对象的 JSon 表示?
假设我有以下结构,我想在 Json 中序列化:
case class A(name:String)
case class B(age:Int)
case class C(id:String, a:A,b:B)
我正在使用 lift-json "write(...)" ,但我想展平结构,而不是:
{ id:xx , a:{ name:"xxxx" }, b:{ age:xxxx } }
我想得到:
{ id:xx , name:"xxxx" , age:xxxx }
Suppose I have the following structure I want to serialize in Json:
case class A(name:String)
case class B(age:Int)
case class C(id:String, a:A,b:B)
I'm using lift-json "write(...)" , but I want to flatten the structure so instead of:
{ id:xx , a:{ name:"xxxx" }, b:{ age:xxxx } }
I want to get:
{ id:xx , name:"xxxx" , age:xxxx }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在
JValue
上使用transform
方法:结果:
Use
transform
method onJValue
:Result:
如果 A 和 B 有多个字段,您将需要稍微不同的方法:
If A and B have multiple fields you will want a slightly different approach:
您可以使用字段(id、name、age)声明一个新对象 D,并在构造函数中加载所需的值,然后将该类序列化为 json。可能还有另一种方法,但这种方法会起作用。
You can declare a new object D with fields (id, name, age) and load the values you want in the constructor then serialize that class to json. There may be another way but this way will work.