使用可解码(嵌套数组)解析不同的 JSON

别斯兰·图拉罗夫

我正在开发一个来自 NiceHash api 的应用程序。我必须使用的 JSON 如下所示:

 {
    "result":{
        "addr":"37ezr3FDDbPXWrCSKNfWzcxXZnc7qHiasj",
        "workers":[
                    [ "worker1", { "a":"45.7" }, 9, 1, "32", 0, 14 ],
                    [ "worker1", { }, 5, 1, "100000", 0, 22 ],
        ]
        "algo":-1
    },
    "method":"stats.provider.workers"
}

用于解析这样的结构

struct Root: Decodable {
    var result: WorkersResult?
    var method: String?
}

struct WorkersResult: Decodable {
    var addr: String?
    var workers: [Workers]?
    var algo: Int?
}

struct Workers: Decodable {
    var worker: [Worker]?
}

struct Worker: Decodable {
    var name: String?
    var hashrate: Hashrate?
    var time: Int?
    var XNSUB: Int?
    var difficult: String?
    var reject: Int?
    var algo: Int?
}

struct Hashrate: Decodable {
    var rate: String?
}

响应等于零,我不明白我做错了什么,我知道问题是解析工人数组,因为如果我评论工人,响应等于一些有效数据。感谢帮助!

代码不同

由于逗号放错了位置,您的 JSON 实际上无效。通过 JSON 验证器运行它现在我的意思。

无论如何,由于Worker(singular) 被编码为数组,因此您需要为其提供自定义解码器。Workers(复数)是不必要的。

struct Root: Decodable {
    var result: WorkersResult?
    var method: String?
}

struct WorkersResult: Decodable {
    var addr: String?
    var workers: [Worker]?
    var algo: Int?
}

struct Worker: Decodable {
    var name: String?
    var hashrate: Hashrate?
    var time: Int?
    var XNSUB: Int?
    var difficult: String?
    var reject: Int?
    var algo: Int?

    init(from decoder: Decoder) throws {
        var container = try decoder.unkeyedContainer()
        name      = try container.decodeIfPresent(String.self)
        hashrate  = try container.decodeIfPresent(Hashrate.self)
        time      = try container.decodeIfPresent(Int.self)
        XNSUB     = try container.decodeIfPresent(Int.self)
        difficult = try container.decodeIfPresent(String.self)
        reject    = try container.decodeIfPresent(Int.self)
        algo      = try container.decodeIfPresent(Int.self)
    }
}

struct Hashrate: Decodable {
    var rate: String?

    private enum CodingKeys: String, CodingKey {
        case rate = "a"
    }
}

用法:

let jsonData = """
{
    "result":{
        "addr":"37ezr3FDDbPXWrCSKNfWzcxXZnc7qHiasj",
        "workers":[
                    [ "worker1", { "a":"45.7" }, 9, 1, "32", 0, 14 ],
                    [ "worker1", { }, 5, 1, "100000", 0, 22 ]
        ],
        "algo":-1
    },
    "method":"stats.provider.workers"
}
""".data(using: .utf8)!

let r = try JSONDecoder().decode(Root.self, from: jsonData)
print(r)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JQuery解析JSON嵌套数组

来自分类Dev

如何使用嵌套数组将JSON解析为对象

来自分类Dev

如何在Android上使用Json解析嵌套数组

来自分类Dev

使用VBA和JSON解析嵌套数组

来自分类Dev

如何使用 JavaScript 解析嵌套数组中的 JSON 值

来自分类Dev

解析多维JSON数组,嵌套数组

来自分类Dev

用Gson解析嵌套数组的json

来自分类Dev

在android中解析json嵌套数组

来自分类Dev

如何使用嵌套数组解析JSON并将特定属性传递给.NET Core中的视图?

来自分类Dev

如何在Google Apps脚本中使用嵌套数组解析JSON对象

来自分类Dev

使用GSON从DistanceMatrix Google Api将嵌套数组Json解析为Java

来自分类Dev

以特定方式解析Excel中的JSON嵌套数组

来自分类Dev

用Gson解析带有嵌套数组的json

来自分类Dev

JSON中的嵌套数组到CSV中的不同行

来自分类Dev

jQuery的JSON与嵌套数组

来自分类Dev

如何从嵌套数组中提取JSON数据?使用Android

来自分类Dev

使用PHP的内部JSON嵌套数组输出

来自分类Dev

使用JSON Java检索嵌套数组值

来自分类Dev

JSON:使用jq编辑嵌套数组中的特定值

来自分类Dev

使用php从json中的嵌套数组获取数据

来自分类Dev

如何使用JSONObject(org.json)获取嵌套数组

来自分类Dev

Mongo使用嵌套数组元素插入JSON文档

来自分类Dev

使用嵌套数组将PHP转换为JSON

来自分类Dev

使用jQuery读取复杂的JSON嵌套数组

来自分类Dev

使用 Postgres 中的嵌套数组高效查询 JSON

来自分类Dev

JSON 复杂嵌套数组排序使用顺序

来自分类Dev

在Python中解析JSON嵌套数组,保持到Json对象的映射

来自分类Dev

如何解析仅包含没有属性名称的数组和嵌套数组的 JSON 数据?

来自分类Dev

使用System.Text.Json反序列化数组json对象的嵌套数组

Related 相关文章

  1. 1

    使用JQuery解析JSON嵌套数组

  2. 2

    如何使用嵌套数组将JSON解析为对象

  3. 3

    如何在Android上使用Json解析嵌套数组

  4. 4

    使用VBA和JSON解析嵌套数组

  5. 5

    如何使用 JavaScript 解析嵌套数组中的 JSON 值

  6. 6

    解析多维JSON数组,嵌套数组

  7. 7

    用Gson解析嵌套数组的json

  8. 8

    在android中解析json嵌套数组

  9. 9

    如何使用嵌套数组解析JSON并将特定属性传递给.NET Core中的视图?

  10. 10

    如何在Google Apps脚本中使用嵌套数组解析JSON对象

  11. 11

    使用GSON从DistanceMatrix Google Api将嵌套数组Json解析为Java

  12. 12

    以特定方式解析Excel中的JSON嵌套数组

  13. 13

    用Gson解析带有嵌套数组的json

  14. 14

    JSON中的嵌套数组到CSV中的不同行

  15. 15

    jQuery的JSON与嵌套数组

  16. 16

    如何从嵌套数组中提取JSON数据?使用Android

  17. 17

    使用PHP的内部JSON嵌套数组输出

  18. 18

    使用JSON Java检索嵌套数组值

  19. 19

    JSON:使用jq编辑嵌套数组中的特定值

  20. 20

    使用php从json中的嵌套数组获取数据

  21. 21

    如何使用JSONObject(org.json)获取嵌套数组

  22. 22

    Mongo使用嵌套数组元素插入JSON文档

  23. 23

    使用嵌套数组将PHP转换为JSON

  24. 24

    使用jQuery读取复杂的JSON嵌套数组

  25. 25

    使用 Postgres 中的嵌套数组高效查询 JSON

  26. 26

    JSON 复杂嵌套数组排序使用顺序

  27. 27

    在Python中解析JSON嵌套数组,保持到Json对象的映射

  28. 28

    如何解析仅包含没有属性名称的数组和嵌套数组的 JSON 数据?

  29. 29

    使用System.Text.Json反序列化数组json对象的嵌套数组

热门标签

归档