gpt4 book ai didi

json - Scala - 如何获取 Json 字段的最大值?

转载 作者:行者123 更新时间:2023-12-01 08:01:25 28 4
gpt4 key购买 nike

我正在尝试从 JSON 字符串中获取 MetricId 字段的最大值。但是我得到一个 java.lang.UnsupportedOperationException: empty.max 用于以下字符串:

[{"MetricName":"name1","DateParsed":"2019-11-20 05:39:00","MetricId":"7855","isValid":"true"},
{"MetricName":"name2","DateParsed":"2019-05-22 17:45:00","MetricId":"1295","isValid":"false"}]

下面是我如何实现寻找最大值的方法:

val metricIdRegex = """"MetricId"\s*:\s*(\d+)""".r

def maxMetricId(jsonString: String): String = {
metricIdRegex.findAllIn(jsonString).map({
case metricIdRegex(id) => id.toInt
}).max.toString
}

val maxId: String = maxMetricId(metricsString)

我期望获得“7855”作为最大指标 ID

这个方法可能有什么问题?我怀疑这可能是正则表达式的问题。

最佳答案

你也可以使用 json4s它非常流行并被许多其他 Scala 库使用:

import org.json4s._
import org.json4s.jackson.JsonMethods._

val data = """[{"MetricName":"name1","DateParsed":"2019-11-20 05:39:00","MetricId":"7855","isValid":"true"},
{"MetricName":"name2","DateParsed":"2019-05-22 17:45:00","MetricId":"1295","isValid":"false"}]"""

// parse data into JValue
val parsed = parse(data)

// go through the parsed variable and extract MetricId into a string list, then cast every item to int
val maxMetricId = (parsed \ "MetricId" \\ classOf[JString]).map{_.toInt}.max

关于json - Scala - 如何获取 Json 字段的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59074387/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com