Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从JSON与NSObject交互?_Ios_Swift_Ios8 - Fatal编程技术网

Ios 如何从JSON与NSObject交互?

Ios 如何从JSON与NSObject交互?,ios,swift,ios8,Ios,Swift,Ios8,我在斯威夫特工作,有个问题 我已经能够以数组的形式从API成功地获取数据(返回的JSON以[]开头,因此是一个数组),但是我想使用的一个特定API返回嵌套对象(JSON以{}开头,而不是[])因此,它在结构上不是一个数组。这是数据。正如您所看到的,顶层是UserRestoreData,它内部有两个第二级组件:FavoriteMeals和FavoriteDrinks。它们本身有任意数量的表示膳食或饮料的子级,而这些子级又有任意数量的成分 {"UserRestoreData":[ {"Fav

我在斯威夫特工作,有个问题

我已经能够以数组的形式从API成功地获取数据(返回的JSON以[]开头,因此是一个数组),但是我想使用的一个特定API返回嵌套对象(JSON以{}开头,而不是[])因此,它在结构上不是一个数组。这是数据。正如您所看到的,顶层是UserRestoreData,它内部有两个第二级组件:FavoriteMeals和FavoriteDrinks。它们本身有任意数量的表示膳食或饮料的子级,而这些子级又有任意数量的成分

{"UserRestoreData":[
    {"FavoriteMeals":
      [
       {"FoodID":"1","Title":"Veal Marsala", 
        "Ingredients":{"IngredientID":"1","Name":"Veal"}
       }
      ]
    },
    {"FavoriteDrinks":
      [
       {"DrinkID":"1","Title":"Mint Mojito"}
      ]
    }
  ]
}
因此,当我运行此代码时,它会正常工作(不会崩溃)

如果我要打印restoreData,我会完美地恢复一切。 但是,从这里我该怎么做?比如我实际上是如何与这个NSArray对象交互的?有没有办法说“好吧,现在给我这个对象最喜欢的饮料孩子”?我很难在网上找到信息(大部分信息似乎都是关于NSArray的,我理解并成功地做到了这一点)

有没有一种方法可以将其反序列化到一个对象?我是否以某种方式将其强制转换?我是否将其转换为一个NSArray并遍历响应?我该如何处理这件事?如果这是一个模糊的问题,很抱歉,只是好奇我如何以某种方式遍历它或访问它的一部分


非常感谢!

而不是
作为NSObject
你可以做
作为NSDictionary
,然后像正常的
NSDictionary一样访问内容,而不是
作为NSObject
你可以做
作为NSDictionary
,然后像正常的
NSDictionary一样访问内容对于一个
NSObject
,它是一个
NSDictionary
,你就投吧。最好花点时间读一下,还有字典。谢谢,我会继续读下去(我还是很新的)!:)它不是
NSObject
,它是一个
NSDictionary
,投吧。最好花点时间阅读一下,还有字典。谢谢,我会继续读下去(我还是个新手)!:)
 var data = NSData(contentsOfURL: NSURL(string: "MYURL"))
 let restoreData = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: nil) as NSObject