首页 > 解决方案 > 使用对象和数组静态创建字典并获取它们的值

问题描述

我正在尝试以静态方式创建字典并获取数据,但我不正确。我的意思是因为它只是一个字符串数组和任何字符串,但在图像中它有括号和大括号。任何帮助我将不胜感激,感谢您的宝贵时间

let responseDevice : [String : Any] = [
         "date_s" : "2021-02-18",
         "id_c" : "4",
         "id_d" : 1,
         "data" : [
             "Peso" : 34,
             "Fc" : -1,
             "Age" : 34,
            "Name" : "July"
             ],
        "flags" : 0,
        "error" : 0
         
     ]
    if  let date_s =  responseDevice["date_s"] as?  String,
        let dat = responseDevice["data"] as?  [String : Any],
        let peso =  dat["Peso"] as?  Int {
        print(date_s)
        print(peso)
    }
    
    print("log :\(responseDevice)")

结果:

2021-02-18
34
log :["id_c": "4", "error": 0, "id_d": 1, "flags": 0, "date_s": "2021-02-18", "data": ["Peso": 34, "Fc": -1, "Age": 34, "Name": "July"]]

在此处输入图像描述

标签: swift

解决方案


您创建的是 Swift Dictionary。您在该图像上拥有的是 JSON 对象。目前还不是很清楚你的目标是什么,所以有几个基本的指针:

  • 如果要将 JSON 解析为字典,请检查此答案
  • 如果您只是想在代码中包含一些 JSON 示例(例如用于测试),您可以将其放在三引号中:
var myJSON = """
[paste your JSON here]
"""

推荐阅读