gpt4 book ai didi

ios - 如何将另一个数组中的数组存储到 Swift 中从 JSON 传递的全局变量?

转载 作者:行者123 更新时间:2023-11-30 12:54:50 26 4
gpt4 key购买 nike

我有一个 JSON,它从 API 调用接收数组

该数组中还有另外 3 个数组:

userDetailsuserStats社区

此 API 调用的示例如下:

["communities": <__NSArrayI 0x6000002540a0>(
{
id = 5;
name = South;
},
{
id = 13;
name = HurraHarry;
},
{
id = 15;
name = EnclliffeT;
}
)
, "userStats": {
totalDraws = 3;
totalLosses = 10;
totalWins = 1;
}, "userDetails": {
id = 31;
"user_email" = "steve@gmail.com";
"user_name" = "Steve Base";
}]

我想将数组 userStats 存储在一个可以传递给另一个 VC 的变量中。

我的类中有一个全局变量 var userStatsArray = [AnyObject]()

以下代码处理 JSON:

 let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]
print (json!)

if let arr = json?["communities"] as? [[String:String]] {
self.communitiesArray = arr.flatMap { $0["name"]!}
self.communityIdsArray = arr.flatMap { $0["id"]!}

}

if let dict = json?["userDetails"] as? [String:String] {
self.tempPlayerId = [dict["id"]!]
let characterArray = self.tempPlayerId.flatMap { String.CharacterView($0) }
let newPlayerId = String(characterArray)
self.playerId = newPlayerId
}
if let tempArray = json?["userStats"] as? [String:AnyObject]{
print ("here ", tempArray)

}

打印命令成功打印 userStats 数组及其所有 header (totalWins、totalDraws、totalLosses...) -

如何将此数组存储到我的全局变量 var userStatsArray = [AnyObject]() 中,以便我可以将其传递给另一个 VC?

最佳答案

最好创建一个像这样的自定义类,并使用该自定义类类型声明数组。然后将 userStats 对象转换为自定义类类型。

class userStats: NSObject {

var totalDraws: NSNumber?
var totalLosses: NSNumber?
var totalWins: NSNumber?

init(totalDraws: NSNumber?, totalLosses: NSNumber?, totalWins: NSNumber?) {
self.totalDraws = totalDraws
self.totalWins = totalWins
self.totalLosses = totalLosses
}

}

var userStatsArray = [userStats]()

//像这样更改您的代码

let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]
print (json!)

if let arr = json?["communities"] as? [[String:String]] {
self.communitiesArray = arr.flatMap { $0["name"]!}
self.communityIdsArray = arr.flatMap { $0["id"]!}

}

if let dict = json?["userDetails"] as? [String:String] {
self.tempPlayerId = [dict["id"]!]
let characterArray = self.tempPlayerId.flatMap { String.CharacterView($0) }
let newPlayerId = String(characterArray)
self.playerId = newPlayerId
}
if let tempArray = json?["userStats"]as? userStats {

userSytatsArray.append(tempArray)
}

关于ios - 如何将另一个数组中的数组存储到 Swift 中从 JSON 传递的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40544996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com