如何在swift中分别显示json输出的每个对象

如何在swift中分别显示json输出的每个对象,json,swift,Json,Swift,目前,我能够显示返回json数据的GET方法的完整输出 但我无法显示单个对象。i、 e描述或引擎的值。但是我可以打印整个json数据。 我的代码 我查看了其他解决方案,尝试了bellow不工作,不确定它是否与我获得的数据类型相关。我已经在下面发布了jsonresult的输出结果 JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? [Str

目前,我能够显示返回json数据的GET方法的完整输出

但我无法显示单个对象。i、 e描述或引擎的值。但是我可以打印整个json数据。 我的代码

我查看了其他解决方案,尝试了bellow不工作,不确定它是否与我获得的数据类型相关。我已经在下面发布了jsonresult的输出结果

JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String: Any]
输出Json结果:-

(
        {

        "device_id" = "3aff273f-7f5f-49ef-81a6-50e2fcc2f69f”;
            engine = 0;

        "last_timestamp" = "2019-10-25 17:33:45";


    },
        {

        "device_id" = "44b0ab5f-5289-4c56-b864-ce4899c2fcb8”;
        engine = 0;

        "last_timestamp" = "2019-10-25 17:33:40";

    },
        {

        "device_id" = "c5639e8b-7f56-4021-9925-828ed735f527";

        engine = 0;


    }
)
  • 结果显然是一个数组,请注意输出中的
    ()
  • 您必须将结果强制转换为预期类型

    if let jsonresult = try JSONSerialization.jsonObject(with: data) as? [[String:Any]] {
       for item in jsonresult {
          print(item["device_id"])
          print(item["engine"])
       }
    }
    

  • 只是为了我的理解
    。打印(type(of:jsonresult))
    ,这给了我``。数组```。这就是为什么我们将jsonresult放入数组,然后调用每个对象,对吗?是的
    Array
    [[String:Any]]
    是同义词。我们不将jsonresult放入数组,
    jsonresult
    是数组,我们将未指定的
    Any
    向下转换为正确的类型。
    if let jsonresult = try JSONSerialization.jsonObject(with: data) as? [[String:Any]] {
       for item in jsonresult {
          print(item["device_id"])
          print(item["engine"])
       }
    }