Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
使用SwiftyJSON和AlamoFire解析数据并在视图之间传输_Json_Swift - Fatal编程技术网

使用SwiftyJSON和AlamoFire解析数据并在视图之间传输

使用SwiftyJSON和AlamoFire解析数据并在视图之间传输,json,swift,Json,Swift,我正在尝试反序列化数组中的JSON对象。我使用的是SwiftyJSON,但程序的运行方式与我预期的不同 这是阵列: var GamesList = [JSON](); 该数组包含我的2个JSON对象: { “游戏类型”:“传统”, “游戏玩家/赢家”:“, “游戏状态”:“已开始”, “自左”:“2”, “自我权利”:“1”, “self_name”:“test2”, “对手右”:“1”, “对手名称”:“测试1”, “游戏指南”:“153fac87-bfc4-367f-41fa-944753

我正在尝试反序列化数组中的JSON对象。我使用的是SwiftyJSON,但程序的运行方式与我预期的不同

这是阵列:

var GamesList = [JSON]();
该数组包含我的2个JSON对象:

{ “游戏类型”:“传统”, “游戏玩家/赢家”:“, “游戏状态”:“已开始”, “自左”:“2”, “自我权利”:“1”, “self_name”:“test2”, “对手右”:“1”, “对手名称”:“测试1”, “游戏指南”:“153fac87-bfc4-367f-41fa-944753dc32c8”, “游戏空闲时间”:755858, “对手左”:“3” }, { “游戏类型”:“传统”, “游戏玩家/赢家”:“, “游戏状态”:“已开始”, “自左”:“2”, “自我权利”:“1”, “self_name”:“test2”, “对手右”:“1”, “对手名称”:“约翰内斯瓦特”, “游戏指南”:“153fac87-bfc4-367f-41fa-944753dc32c9”, “游戏空闲时间”:755858, “对手左”:“3” }]hier是je游戏状态:可选({ “游戏类型”:“传统”, “游戏玩家/赢家”:“, “游戏状态”:“已开始”, “自左”:“2”, “自我权利”:“1”, “self_name”:“test2”, “对手右”:“1”, “对手名称”:“testuser”, “游戏指南”:“153fac87-bfc4-367f-41fa-944753dc32c9”, “游戏空闲时间”:755858, “对手左”:“3” }

我创建了一个新的JSON对象,并用数组中的object 1值填充它:

var gameState : JSON?;
self.gameState = GamesList[1];
当我将整个self.gameState对象打印到控制台时,一切都很好,看起来就像我期望的那样。但是,当我只想使用这个JSON对象的1个值时,我似乎无法让它工作

我试过:

self.gameState["game_type"].string;
以及:


但这两者都不是编译。我做错了什么?

我可以看出这可能会令人沮丧,但这实际上是一个非常简单的修复方法。 我和阿拉莫菲尔一起工作时也遇到过同样的问题

我可以理解为什么它没有编译,您正在尝试从
数组中检索
,例如:

self.gameState["game_type"]
但是
数组
类型没有
键:值
对,很简单,它是通过索引访问的:

self.gameState[1]
步骤1

因此,不要使用数组,而是将JSON放入字典。然后,按照以下步骤操作:

确保JSON数据存储在
字典中,如:

let jsonData: [String:String] = //your JSON
(如果要在
jsonData
中操作数据,请使用var键盘

步骤2

JSON数据存储在
字典中后,只需执行以下操作:

let gameState = jsonData["game_type"]!
从那以后你就不会有问题了


我希望我能解释一下,如果有什么不清楚的地方,请发表评论。

谢谢你的回答!不幸的是,这没有帮助我解决问题。我在尝试执行以下操作时出错:self.gameState[1]。Xcode说明:无法用“int”类型的索引为“JSON”类型的值下标
let gameState = jsonData["game_type"]!