【问题标题】:How can I loop through an object in SwiftyJSON? not just with swift如何遍历 SwiftyJSON 中的对象?不仅仅是快速
【发布时间】:2017-03-15 01:59:13
【问题描述】:
var tempJSON:JSON = ""
tempJSON = JSON(self.userdefaults.string(forKey: "currentOrder"))
print(tempJSON)

产量:

{"7": "1", "21": "0", "20": "0", "3": "1"}

我需要能够循环通过它,但不能。 我试过了。

for(key,value) in tempJSON{
       print(key)

            }

没有任何输出....

谢谢

【问题讨论】:

  • tempJSON.enumerated() 或者干脆做for item in tempJSON{ print(item) index 那么你必须使用@987654327 @
  • 很抱歉不知道如何在swiftyjson中枚举
  • 为什么它不起作用?它对我来说很好,不需要enumerated(),因为它是(key,value) 对,而不是(index,value)

标签: ios json swift swifty-json


【解决方案1】:

尝试从字符串中获取Data 并使用它来初始化JSON 对象:

let jsonString = "{\"7\": \"1\", \"21\": \"0\", \"20\": \"0\", \"3\": \"1\"}"
if let dataFromString = jsonString.data(using: .utf8, allowLossyConversion: false) {
    let tempJSON = JSON(data: dataFromString)
    print(tempJSON)

    for (key, value) in tempJSON {
        print(key)
        print(value.stringValue)
    }
}

【讨论】:

  • @BostonMacOSX 我试过使用字符串,它对我有用。尝试检查您的用户默认值是否返回正确的字符串。
【解决方案2】:

只要做:

for(key,value) in tempJSON.enumerated(){
   print(key)
}

【讨论】:

  • 打印JSON对象不需要枚举,他的代码是正确的,问题可能在别处
【解决方案3】:

我最好的猜测是,您从 userdefault 中获取了一个字符串并使用它来初始化 JSON,尝试更改:

tempJSON = JSON(self.userdefaults.string(forKey: "currentOrder"))

tempJSON = JSON(self.userdefaults.dictionary(forKey: "currentOrder"))

【讨论】:

  • 可能您的用户默认值不正确,尝试使用字典或数据之类的 changesam 回答都有效
  • 那么我如何将上面发布的字符串放入字典中?
【解决方案4】:

解决方案 我必须将 parseJSON: 添加到 JSON 方法中,以便说明它来自字符串文字。

var tempJSON:JSON = ""
tempJSON = JSON(parseJSON: self.userdefaults.string(forKey: "currentOrder"))
print(tempJSON)

【讨论】:

    猜你喜欢
    • 2021-11-27
    • 1970-01-01
    • 2023-04-05
    • 2015-08-16
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多