我需要在Swift中解析与此类似的数据结构(基于JSON):
[
{
"Name": "uniquename",
"Value": "John"
},
{
"Name": "locale",
"Value": "UK"
},
]
我将此节点存储在struct
中
struct Rowset : Decodable {
var row: LoggedUserSession
init(loggedUser: [LoggedUserSession]){
self.row = loggedUser[0]
}
enum CodingKeys: String, CodingKey{
case row = "Row"
}
}
我为需要从数组中提取的所有数据准备了类似的struct
,但我不知道如何迭代该过程,并在名称字符串与我的大小写匹配时返回该值。
struct LoggedUserSession : Decodable {
var username: String;
var locale: String;
init(username: String, locale: String) {
// In JS I would embedd an iterator here and return the values
self.username = username
self.locale = locale
}
enum CodingKeys: String, CodingKey {
case username = "uniquename"
case locale = "locale"
}
}
答案 0 :(得分:0)
如果我正确理解了您的意思,则希望将LoggedUserSession
个JSON数组解析为一个LoggedUserSession
s的快速数组。如果是这样,那么您就快到了。
为完整起见,我将按以下方式解释您发布的JSON,以使其有效:
{"loggedUserSessions":
[
{
"uniquename": "John",
"locale": "UK"
}
]
}
您的LoggedUserSession
对象已正确实现,所以现在您需要的只是数组解析部分。您可以使用以下结构进行操作:
struct SessionList: Decodable {
let sessions: [LoggedUserSession]
}
使用JSONDecoder
进行调用并使用您的JSON数据应将您的列表序列化为可通过SessionList
的{{1}}属性访问的数组。