这是我的JSON
{
"id": 1,
"user": {
"user_name": "Tester",
"real_info": {
"full_name":"Jon Doe"
}
},
"reviews_count": [
{
"count": 4
}
]
}
这是我希望将其保存到的结构(不完整)
struct ServerResponse: Decodable {
var id: String
var username: String
var fullName: String
var reviewCount: Int
enum CodingKeys: String, CodingKey {
case id,
// How do i get nested values?
}
}
我看过Apple的有关解码嵌套结构的文档,但是我仍然不明白如何正确执行JSON的不同级别。任何帮助都感激不尽。
另一种方法是创建一个与JSON紧密匹配的中间模型(借助于quicktype.io之类的工具),让Swift生成对它进行解码的方法,然后在最终数据模型中挑选所需的片段:
// snake_case to match the JSON and hence no need to write CodingKey enums / struct
fileprivate struct RawServerResponse: Decodable {
struct User: Decodable {
var user_name: String
var real_info: UserRealInfo
}
struct UserRealInfo: Decodable {
var full_name: String
}
struct Review: Decodable {
var count: Int
}
var id: Int
var user: User
var reviews_count: [Review]
}
struct ServerResponse: Decodable {
var id: String
var username: String
var fullName: String
var reviewCount: Int
init(from decoder: Decoder) throws {
let rawResponse = try RawServerResponse(from: decoder)
// Now you can pick items that are important to your data model,
// conveniently decoded into a Swift structure
id = String(rawResponse.id)
username = rawResponse.user.user_name
fullName = rawResponse.user.real_info.full_name
reviewCount = rawResponse.reviews_count.first!.count
}
}
如果reviews_count
将来它包含多个值,这还使您可以轻松地进行迭代。
输入数据上有一个例子。 这是我在向服务器发出适当请求后收到的数据示例。我得到了这样的数据。如何序列化此类数据?由于嵌套结构列表的动态名称,我的尝试失败了。如何正确处理这种嵌套动态结构?
下面是一个Java程序,我正在尝试使用org.fasterxml.jackson.core和jackson-databind库以流式方式测试JSON处理。 目标是学习如何处理JSON并捕获我想要的信息。现在,我想要完成的是以下内容: 1)我在这里发布的JSON有很多数据。跟随这个JSON的Java程序是我试图处理这个JSON,特别是,捕获“Part1/MyAnalysis/Matches”下的“n
问题内容: http://play.golang.org/p/f6ilWnWTjm 我正在尝试解码以下字符串,但仅获取空值。 如何在Go中解码嵌套的JSON结构? 我想将以下内容转换为地图数据结构。 问题答案: 在Go中使用嵌套结构来匹配JSON中的嵌套结构。 这是一个如何处理示例JSON的示例: 游乐场链接 您还可以对内部结构使用匿名类型: 游乐场链接 或外部和内部结构: 游乐场链接 如果您不知
问题内容: 我有一个嵌套的JSON代码为(实际上是我的Facebook状态更新) 现在如何访问特定更新的注释并通过循环打印?(我正在同时检索几个更新)。 问题答案: 使用json_decode():
问题内容: 在输入数据上有一个示例。 这是在向服务器发出适当请求后我收到的数据的示例。我得到了这样的数据。此类数据如何序列化?由于嵌套结构列表的动态名称,我的尝试失败了。如何正确处理此类嵌套的动态结构? 问题答案: 使用地图(类型为)在JSON中对对象进行建模: 然后拆封: 将导致(在Go Playground上尝试): {Status:OK StatusCode:100 Sms:map [790
问题内容: 假设我的数据类型包含一个属性,该属性可以在客户对象中包含任何JSON字典 该属性可以是任何任意的JSON映射对象。 在我可以使用反序列化的JSON(但使用新的Swift 4 协议)转换属性之前,我仍然想不出一种方法。 有谁知道如何在Swift 4中使用Decodable协议实现这一目标? 问题答案: 从我发现的要点中得到一些启发,我为和编写了一些扩展名。您可以在此处找到我的要旨的链接。