当前位置: 首页 > 面试题库 >

检查json响应是数组还是int或字符串作为键?

山翼
2023-03-14
问题内容

我在某些时间具有int值的“ products”键中有json响应,并且在某些情况下它具有数组?如何检查是否具有数组或整数?

"products": 25

要么

"products": [77,80,81,86]

我正在用这个

self.productsCount = mResp["products"] as! [Int]

但是每次没有数组时,它就会崩溃。

现在我不知道如何检查此内容,因为我对Int和Array有不同的选择?

请帮助我。谢谢


问题答案:

无需回到Any这里。甚至有问题的JSON都可以使用来处理Codable。您只需要继续尝试不同的类型,直到一种可行。

struct Thing: Decodable {
    let products: [Int]

    enum CodingKeys: String, CodingKey {
        case products
    }

    init(from decoder: Decoder) throws {
        // First pull out the "products" key
        let container = try decoder.container(keyedBy: CodingKeys.self)

        do {
            // Then try to decode the value as an array
            products = try container.decode([Int].self, forKey: .products)
        } catch {
            // If that didn't work, try to decode it as a single value
            products = [try container.decode(Int.self, forKey: .products)]
        }
    }
}


let singleJSON = Data("""
{ "products": 25 }
""".utf8)

let listJSON = Data("""
{ "products": [77,80,81,86] }
""".utf8)

let decoder = JSONDecoder()

try! decoder.decode(Thing.self, from: singleJSON).products   // [25]
try! decoder.decode(Thing.self, from: listJSON).products     // [77, 80, 81, 86]


 类似资料:
  • 问题内容: 我有一个通过JSON.Stringify函数从对象转换的json字符串。 我想知道它是json字符串还是普通字符串。 是否有类似“ isJson()”的函数来检查它是否为json? 我想在使用本地存储(如下面的代码)时使用该函数。 先感谢您!! 问题答案: “简单”的方法是在失败时解析并返回未解析的字符串:

  • 问题内容: 我试图确定用户输入的内容是否包含有效或有效的内容。如果输入是an 或a,则程序应声明。 这是我的代码: 编辑:对不起,困惑的家伙。““令牌[]”是一个字符串数组。 如果用户输入make = number ( 数字 为),我试图让我的程序打印“ Invalid Make” 问题答案: 您可以编写一个函数来测试它,方法是在不喜欢它时调用并捕获(它将处理和值) 那你可以这样称呼它 而有实力的

  • 问题内容: 有谁知道如何检查JavaScript中的变量是数字还是字符串? 问题答案: 如果你处理的文字符号,而不是构造函数,你可以使用typeof运算。 如果您是通过构造函数创建数字和字符串,比如,你应该记住,可能会返回了。 检查类型的更简单的方法可能是利用在underscore.js中找到的方法可以在[此处找到带注释的源代码), 这将返回以下布尔值:

  • 问题内容: 我有一张桌子来存储有关我的兔子的信息。看起来像这样: 我该如何找到喜欢胡萝卜的兔子?我想出了这个: 我不喜欢那个查询。一团糟。 作为专职兔子管理员,我没有时间更改数据库架构。我只想适当地喂兔子。有没有更可读的方法来执行该查询? 问题答案: 从PostgreSQL 9.4开始,您可以使用operator: 如果改用 jsonb 类型,甚至可以在键上为查询建立索引: __ 当然,作为专职兔

  • 问题内容: 如何检查给定的字符串是否采用以空格/换行符分隔的多个json字符串形式? 例如, 给定的:(3个json与空格连接) return :,因为item( 和)中的每个都是有效的json。 在Go中,我可以编写一个O(N ^ 2)函数,例如: 但这不适用于大量输入。 问题答案: 有两种选择。从编码的角度来看,最简单的方法就是正常解码JSON字符串。您可以通过解码为空结构来提高效率: (游乐

  • 问题内容: 我有一个具有几个命​​令的应用程序。当您键入某个命令时,您必须输入有关某物/某人的其他信息。现在,根据情况,信息必须严格为整数或字符串。 但是,无论您使用raw_input()在Python中键入的内容实际上是一个字符串,无论如何,更具体地讲,我很快会不加尝试地……除非查看变量是否由数字或字符组成? 问题答案: 我认为您有两种选择: 只需尝试将其转换为,但要捕获异常: except V