Scala 带有无序字段的Json4s自定义序列化程序

Scala 带有无序字段的Json4s自定义序列化程序,scala,json4s,Scala,Json4s,在json4s自述文件上给出的示例中,仅当字段的顺序为{“开始”:0,“结束”:0}时,匹配才起作用。如果开始和结束字段被交换,则匹配无效。是否需要编写下面的大小写匹配,这样JSON字段顺序就不重要了 case JObject(JField("start", JInt(s)) :: JField("end", JInt(e)) :: Nil) 我没有使用过这个库,所以我不确定这是否是正确的方法:(我花了几分钟看了文档后想出了这个方法) 其思想是按字母顺序对字段进行排序,然后创建Interval

在json4s自述文件上给出的示例中,仅当字段的顺序为{“开始”:0,“结束”:0}时,匹配才起作用。如果开始和结束字段被交换,则匹配无效。是否需要编写下面的大小写匹配,这样JSON字段顺序就不重要了

case JObject(JField("start", JInt(s)) :: JField("end", JInt(e)) :: Nil)

我没有使用过这个库,所以我不确定这是否是正确的方法:(我花了几分钟看了文档后想出了这个方法)

其思想是按字母顺序对字段进行排序,然后创建Interval类。

我有一个不同的方法,但这使我发现了json4s中的“extract”函数。它解决了订购问题

case x: JObject =>
  Interval((x \ "start").extract[Int],(x \ "end").extract[Int])
如果你需要一个更复杂的例子,你可以检查这个

case x: JObject =>
  Interval((x \ "start").extract[Int],(x \ "end").extract[Int])