在swift中parsing从API以API返回的对象
我从REST API
获得了一个响应对象(res)。 它是types的。 __NSArrayM
。 它包含我想要parsing的JSON格式的string。
{ JsonResult = "[ { \"IsAuth\":\"true\" } ]"; }
这是一个很长的JSONstring,为简单起见,我缩短了它。
为了parsing一个json,这个对象需要是Dictionarytypes的,但是我不能将__NSArrayM
types的对象__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) } }