当前位置: 首页 > 知识库问答 >
问题:

在Scala中用LINQ风格的查询解析JSON

仲孙疏珂
2023-03-14

假设我需要解析一个JSON(见下文)。

{
  success: true
  statusCode: 0
  statusMessage: "Ok"
  payload { ... } // some actual data
}

首先,我解析“status”字段,以获得case类status实例(见下文)

case class Status(success: Boolean, code: Int, message: String)

val json = parse(text) // text is a JSON above

val statusList = for {
    JObject(obj) <- json
    JField("success", JBool(success)) <- obj
    JField("code", JInt(code)) <- obj
    JField("message", JString(message)) <- obj
  } yield Status(success, code, message)

我可以用JSON4S解析JSON以获得选项[Status]而不首先获得列表[Status]吗?

共有1个答案

冉昊
2023-03-14

您可以使用json4s内置提取。在您的示例中,extractopt而不是extract

 类似资料:
  • 问题内容: 我有一个很大的Excel工作表,看起来与此类似: 我要做的是创建一个新的动态生成的表格,其中显示了所有人员。 在SQL中,这将是同步:。我以前从未在excel中使用过VBA(我是一位经验丰富的PHP / Javascript程序员,并且已在MS Access中使用过VBA),所以我正在寻找初学者的指导以帮助我入门。也许有人可以推荐一个简单的教程或博客文章,其功能类似于我需要做的事情?

  • 我有一个通用JSON,其中所有键和值都是字符串。 示例1: 但JSON也可以是:例如2: 我想将JSON转换为映射。示例1将转换为Map[字符串,字符串] 示例2将转换为列表[映射[字符串,字符串]] 因此,基本上我想将JSON转换为Map,并按如下方式使用它: 地图(“键1”)(“键2”)(“键3”) 获取最终结果值3。 请帮忙!!

  • 问题内容: 我注意到大多数GNU核心应用程序的基本“样式”,其中参数为: 要么 (多种选择) (选项,) 他们遵循上述样式。我想避免编写参数解析器,如果有一个使用上述样式的库可以做到这一点。你知道吗? 问题答案: getopt_long将完成这项工作,这是来自http://www.gnu.org/s/libc/manual/html_node/Getopt- Long-Option-Example

  • 问题内容: 我正在为这个论坛进行编码,由于我是LINQ的新手,因此用户访问主页时遇到了这个问题。我想要一个显示这样的论坛列表的表: 我有以下SQL表: 谢谢… 问题答案: 如果您使用成员身份并且不想将aspnet_Users包含在dbml中,则用于显示用户名: 使发布的示例更好一点的另一项更改是在posts变量中添加orderbydescending:然后,您可以从select子句中删除重复4次的

  • 问题内容: 我正在使用Scala 2.8中的JSON类中的构建来解析JSON代码。由于最小化依赖性,我不想使用Liftweb或其他任何一种。 我这样做的方法似乎势在必行,是否有更好的方法可以做到? 问题答案: 这是一个基于提取器的解决方案,它将进行类转换: 在for循环的开始,我人为地将结果包装在一个列表中,以便在最后生成一个列表。然后在for循环的其余部分中,我将使用生成器(使用)和值定义(使用

  • 我有这个: 如何从hashlist中排除“item”?打破了我的头。Linq不想对我开放。