scala 使用啥解析json比较好
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala 使用啥解析json比较好相关的知识,希望对你有一定的参考价值。
参考技术A lift-jsonsbt的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 【问题描述】:我知道我们在进行序列化时通常使用NSDictionary
或NSArray
,但我想知道如果我们更喜欢NSDictionary
有什么好处吗?
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
【问题讨论】:
这取决于json的响应... NSDictionary 提供了 key:value 行为,这使得从字典中访问所需对象变得更加容易。而在 NSArray 中,通过 JSON 响应获取所需的对象是比较困难的。 访问 json.org 并研究 JSON 语法。 JSON 由 arrays 和 objects 组成。这些很好地对应于 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-Play Json 框架解析 Json 时获取键和值?