Ios 在swift 4中将JSON对象转换为数组
我想从下面的JSON访问一些数据,因为我需要将JSON转换为数组格式Ios 在swift 4中将JSON对象转换为数组,ios,swift,Ios,Swift,我想从下面的JSON访问一些数据,因为我需要将JSON转换为数组格式 URLSession.shared.dataTask(with: request) { (data, response, err) in guard let data = data else {return} do { let parsedData = try JSONSerialization.jsonObject(with: data, options: .mu
URLSession.shared.dataTask(with: request) { (data, response, err) in
guard let data = data else {return}
do {
let parsedData = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
if let allResult = parsedData["fps"] as? [String: Any] {
if let allDataProviders = allResult["dataProviders"] as? [String: Any] {
if let allData = allDataProviders["data"] as? [String: Any] {
if let allFieldValues = allData["ms.vss-work-web.new-work-items-hub-default-data-provider"] as? [String: Any] {
if let allFieldValuesData = allFieldValues["fieldValues"] as? [Any] {
for data in 0..<allFieldValuesData.count {
print(allFieldValuesData[data])
}
}
}
}
}
}
}
catch let error {
print(error)
}
}.resume()
URLSession.shared.dataTask(with:request){(data,response,err)在
guard let data=data else{return}
做{
让parsedData=try JSONSerialization.jsonObject(使用:data,options:.mutableContainers)作为![String:Any]
如果让allResult=parsedData[“fps”]作为?[String:Any]{
如果让allDataProviders=allResult[“dataProviders”]作为?[字符串:任意]{
如果让allData=allDataProviders[“数据”]作为?[字符串:任意]{
如果让allFieldValues=allData[“ms.vss-work-web.new work items hub默认数据提供程序”]作为?[字符串:任意]{
如果将allFieldValuesData=allFieldValues[“fieldValues”]设为?[任何]{
对于0中的数据..您到底打印了什么?。可变容器
不相关。那么使用Codable呢?旁注:您可以避免厄运金字塔™ 通过使用guard
语句。@Larme使用codable需要声明属性。因此一些属性名称类似于ms.vss-work-web.new-work-items-hub-default-data-provider是否可以在swift中声明同名属性?可以使用该属性,并且可以使用CodingKeys
使用更短、更可读的属性n您的结构。@JoakimDanielson是的,您是对的,但在json中,一些属性名称类似于ms.vss-work-web.new-work-items-hub-default-data-provider,那么您可以指导我如何声明这样的属性名称吗?您打印的内容到底是什么?.mutableContainers
与此无关。那么使用Codable呢?旁注:您可以避免使用Pyra厄运中期™ 通过使用guard
语句。@Larme使用codable需要声明属性。因此一些属性名称类似于ms.vss-work-web.new-work-items-hub-default-data-provider是否可以在swift中声明同名属性?可以使用该属性,并且可以使用CodingKeys
使用更短、更可读的属性n您的结构。@JoakimDanielson是的,您是对的,但在json中,某些属性名称类似于ms.vss-work-web.new-work-items-hub-default-data-provider,那么您能指导我如何像这样声明属性名称吗
{
data = (
1957,
"User Story",
"Design Project Dashboard",
{
distinctDisplayName = "Sumit Gupta <sumit.gupta@gmail.com>";
identityRef = {
"_links" = {
avatar = {
href = "https://orgName.visualstudio.com/_apis/GraphProfile/MemberAvatars/aad.ODJhNzk2MjgtZTNjYi03YmQxLTkyM2EtM2Q2ZDI3ZDIwNDUy";
};
};
descriptor = "aad.ODJhNzk2MjgtZTNjYi03YmQxLTkyM2EtM2Q2ZDI3ZDIwNDUy";
displayName = "Sumit Gupta";
id = "1e741317-dc6a-41f5-b942-02dfa8a411f0";
imageUrl = "https://orgName.visualstudio.com/_apis/GraphProfile/MemberAvatars/aad.ODJhNzk2MjgtZTNjYi03YmQxLTkyM2EtM2Q2ZDI3ZDIwNDUy";
uniqueName = "sumit.gupta@gmail.com";
url = "https://spsprodeus21.vssps.visualstudio.com/Acf2ada01-867f-4337-b722-208aa88fec4d/_apis/Identities/1e741317-dc6a-41f5-b942-02dfa8a411f0";
};
},
Resolved,
"VSO Client",
"<null>",
0,
"/Date(1554882629083)/"
);
}