scala 使用啥解析json比较好

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala 使用啥解析json比较好相关的知识,希望对你有一定的参考价值。

参考技术A lift-json

sbt的build.sbt中增加 libraryDependencies += "net.liftweb" %% "lift-json" % "2.6"

具体用法另外百度本回答被提问者采纳

在解析 JSON 时使用 NSDictionary 有啥好处或好处?

【中文标题】在解析 JSON 时使用 NSDictionary 有啥好处或好处?【英文标题】:What is the advantage or benefit of using NSDictionary while parsing JSON?在解析 JSON 时使用 NSDictionary 有什么好处或好处? 【发布时间】:2014-07-16 09:32:51 【问题描述】:

我知道我们在进行序列化时通常使用NSDictionaryNSArray,但我想知道如果我们更喜欢NSDictionary 有什么好处吗?

NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

【问题讨论】:

这取决于json的响应... NSDictionary 提供了 key:value 行为,这使得从字典中访问所需对象变得更加容易。而在 NSArray 中,通过 JSON 响应获取所需的对象是比较困难的。 访问 json.org 并研究 JSON 语法。 JSON 由 arraysobjects 组成。这些很好地对应于 NSArrays 和 NSDictionarys。 (这不是“优势”的问题。两者根本不能互换。鉴于 JSON,您别无选择。) 【参考方案1】:

这不是偏好问题。 JSONObjectWithData: 方法返回一个 id 类型的对象。

data 中 JSON 数据的 Foundation 对象,如果出错则返回 nil 发生。

因此,您无法选择是要NSArray 还是NSDictionary。事实上,您应该始终检查以确保返回的对象是您期望的类型。

您的代码应如下所示:

NSError* error;
id JSONObject = [NSJSONSerialization JSONObjectWithData:responseData 
                                                options:kNilOptions 
                                                  error:&error];

if ([JSONObject isKindOfClass:[NSDictionary class]])

    NSDictionary *JSONDictionary = (NSDictionary *)JSONObject;

    // Do your stuff.

否则,当您调用的端点返回的 JSON 不再是字典,而是数组或任何您不期望的东西时,您将面临崩溃的风险。

【讨论】:

OP 应该记住,他们无法控制收到的 JSON 中的内容。 JSONObjectWithData:将返回 JSON 数据中的任何内容,而不是程序员期望存在的内容。

以上是关于scala 使用啥解析json比较好的主要内容,如果未能解决你的问题,请参考以下文章

Scala解析JSON

如何在使用 Scala-Play Json 框架解析 Json 时获取键和值?

在Scala中解析内容为Json格式的文件

如何使用 Spark-Scala 解析 JSON 数据

scala spray-json 如何解析一个复杂的 数组JSON

在 Scala / Spark 中将 JSON 结构解析为 JSON 对象