如何使用 Alamofire 从 JSON 中提取数据
How to extract data from JSON with Alamofire
我这样使用 Alamofire 库:
Alamofire.request(.POST, "http://www.somesample.com/getData.php", parameters: ["user":"charles"]).responseJSON{jsonData in
var theData = jsonData.result.value
如果我调试打印 theData 变量,它会抛出如下内容:
[
{
"userId" : "61",
"userPicture" : "147884767502.jpg",
"wasId" : "80",
"favorite" : "0",
"message" : "how are you?",
"username" : "paco",
"date" : "13\/10\/2015 03:44PM",
"userPhrase" : "hello"
"repliesNumber" : 2
},
{
"userId" : "3",
"userPicture" : "149181897286.jpg",
"wasId" : "5",
"favorite" : "0",
"message" : "let's go!",
"username" : "loliFlower",
"date" : "30\/08\/2015 07:48PM",
"userPhrase" : "ciiiii!",
"repliesNumber" : 3
}
]
我通常使用 SwiftyJSON 所以我写(甚至我使用 for 循环遍历 SwiftyJSON 生成的数组的每个索引:
var myData = JSON(theData.result.value)
print(myData[0]["username"].stringValue)
但是如果我不想再使用 SwiftyJSON 库怎么办? 执行此操作的本机方法是什么?
我建议您使用代码生成从 json 响应中创建原生模型,这将节省您手动解析的时间并降低因错误键而导致错误的风险,所有元素都将是可通过模型属性访问,这将是纯本机的,模型比检查键更有意义。检查 http://www.json4swift.com 并让我知道您是否需要进一步的帮助来从 json 响应中启动对象。 (确保您输入的是实际的 json 响应,而不是您问题中的打印对象)
我这样使用 Alamofire 库:
Alamofire.request(.POST, "http://www.somesample.com/getData.php", parameters: ["user":"charles"]).responseJSON{jsonData in
var theData = jsonData.result.value
如果我调试打印 theData 变量,它会抛出如下内容:
[
{
"userId" : "61",
"userPicture" : "147884767502.jpg",
"wasId" : "80",
"favorite" : "0",
"message" : "how are you?",
"username" : "paco",
"date" : "13\/10\/2015 03:44PM",
"userPhrase" : "hello"
"repliesNumber" : 2
},
{
"userId" : "3",
"userPicture" : "149181897286.jpg",
"wasId" : "5",
"favorite" : "0",
"message" : "let's go!",
"username" : "loliFlower",
"date" : "30\/08\/2015 07:48PM",
"userPhrase" : "ciiiii!",
"repliesNumber" : 3
}
]
我通常使用 SwiftyJSON 所以我写(甚至我使用 for 循环遍历 SwiftyJSON 生成的数组的每个索引:
var myData = JSON(theData.result.value)
print(myData[0]["username"].stringValue)
但是如果我不想再使用 SwiftyJSON 库怎么办? 执行此操作的本机方法是什么?
我建议您使用代码生成从 json 响应中创建原生模型,这将节省您手动解析的时间并降低因错误键而导致错误的风险,所有元素都将是可通过模型属性访问,这将是纯本机的,模型比检查键更有意义。检查 http://www.json4swift.com 并让我知道您是否需要进一步的帮助来从 json 响应中启动对象。 (确保您输入的是实际的 json 响应,而不是您问题中的打印对象)