如何从JSON与NSObject交互?

时间:2014-07-27 19:52:05

标签: ios swift ios8

我在Swift工作并有一个问题。

我已经能够成功地从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"}
      ]
    }
  ]
}

因此,当我运行此代码时,它会起作用(不会崩溃)

 var data = NSData(contentsOfURL: NSURL(string: "MYURL"))
 let restoreData = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: nil) as NSObject

如果我要println restoreData,我会完美地回复所有内容。 但是我从这里做什么呢?就像我如何实际与这个NSObject交互一样?有没有办法说'#34;好吧,现在让我成为这个对象最喜欢的饮酒孩子"?我很难在线查找信息(大多数情况似乎都与NSArray有关,我理解并且已成功完成)。

有没有办法将其反序列化为对象?我会以某种方式投射吗?我是否将其纳入NSArray并迭代响应?我该怎么办?对不起,如果这是一个模糊的问题,只是好奇我怎么能以某种方式迭代它或访问它的一部分。

非常感谢!

1 个答案:

答案 0 :(得分:4)

您可以as NSObject代替as NSDictionary,然后像普通NSDictionary

一样访问内容