在swift中parsing从API以API返回的对象

我从REST API获得了一个响应对象(res)。 它是types的。 __NSArrayM 。 它包含我想要parsing的JSON格式的string。

 { JsonResult = "[ { \"IsAuth\":\"true\" } ]"; } 

这是一个很长的JSONstring,为简单起见,我缩短了它。

为了parsing一个json,这个对象需要是Dictionarytypes的,但是我不能将__NSArrayMtypes的对象__NSArrayM成它。

我搜查了很多,但无法弄清楚这个JSONstring。

附加:无论哪个对象我试图施放响应对象。 我得到的错误 –

无法将“__NSArrayM”(0x107e86c30)types的值转换为“NSData”(0x107e86168)或我投入的任何数据types。

让我们一步一步来做。

你说你有一个名为“res”的对象,其types是__NSArrayM ,它包含这个东西:

 { JsonResult = "[ { \"IsAuth\":\"true\" } ]"; } 

这意味着已经将JSON转换为一个对象,即一个NSArray。

在这个我们看不到的数组中 ,这个东西是一个字典(我们将其命名为“dict”),它的值是一个String,它本身代表另一个JSON对象

让我们用键来得到这个值:

 if let value = dict["JsonResult"] as? String { print(value) } 

现在“值”应该是"[ { \"IsAuth\":\"true\" } ]"

这是一个代表JSON 的string 。 为了解码JSON,我们首先必须将string转换成数据然后我们才能解码:

 if let data = value.data(using: .utf8) { if let content = try? JSONSerialization.jsonObject(with: data, options: []), let array = content as? [[String: Any]] { print(array) } }