正确的方法从Json4s中的List [JValue]获取最大JInt值

时间:2015-05-25 06:29:33

标签: json scala json4s

Json4s没有定义隐式排序的具体原因吗?

例如此代码::

List(JInt(1), JInt(3)).max

引发以下异常

  

没有为org.json4s.JsonAST.JInt定义隐式排序

那么,这只是一个无人关心的功能,或者背后有一些故事吗?

而且,这个实现(它使用scalaz Order)还可以吗?它不违反合同吗?

object JValueOrdering extends Order[JValue] {
  def order(x: JValue, y: JValue): Ordering = (x, y) match {
    case (JInt(a), JInt(b))         => a ?|? b
    case (JString(a), JString(b))   => a ?|? b
    case (JDouble(a), JDouble(b))   => a ?|? b
    case (JDecimal(a), JDecimal(b)) => a ?|? b
    case (JArray(a), JArray(b))     => a.length ?|? b.length
    case _                          => Ordering.EQ
  }
}

0 个答案:

没有答案