ios - 展平具有重复值的字典数组 Swift 3.0

标签 ios arrays swift dictionary swift3

我有一个像这样的字典数组:

let arrayofDictionaries:[[String:Any]] = [
    ["nationalCode": "1570158037", "bookId": 327, "orderDate": "2017-07-24 14:11:52", "mobileNo": "09873456789", "isFavorite": false, "price": 45000, "bookName": "آموزش عربي انساني نکته ها"],
    ["nationalCode": "1570158037", "bookId": 366, "orderDate": "2017-07-24 14:11:58", "mobileNo": "09873456789", "isFavorite": false, "price": 19000, "bookName": "آبي عربي پيش1و2انساني"],
    ["nationalCode": "1570158037", "bookId": 327, "orderDate": "2017-07-24 14:11:52", "mobileNo": "09873456789", "isFavorite": false, "price": 45000, "bookName": "آموزش عربي انساني نکته ها"],
    ["nationalCode": "1570158037", "bookId": 366, "orderDate": "2017-07-24 14:11:58", "mobileNo": "09873456789", "isFavorite": false, "price": 19000, "bookName": "آبي عربي پيش1و2انساني"],
]

数组中的字典有固定的键值会改变。 我试过这段代码:

for item in arrayofDictionaries {
    for (kind, value) in item {
        print(kind)
        dic.updateValue(value!, forKey: kind)
    }    
}

但这会消除重复的 kies 并只返回最后的值。 上述代码的输出将是:

dic = ["nationalCode": "1570158037", "bookId": 366, "orderDate": "2017-07-24 14:11:58", "mobileNo": "09873456789", "isFavorite": false, "price": 19000, "bookName": "آبي عربي پيش1و2انساني"]

我想要的是这样的字典:

let flattenedArray : [String : Any] = [
    "nationalCode": "1570158037", "bookId": 327, "orderDate": "2017-07-24 14:11:52", "mobileNo": "09873456789", "isFavorite": false, "price": 45000, "bookName": "آموزش عربي انساني نکته ها",
    "nationalCode": "1570158037", "bookId": 366, "orderDate": "2017-07-24 14:11:58", "mobileNo": "09873456789", "isFavorite": false, "price": 19000, "bookName": "آبي عربي پيش1و2انساني",
    "nationalCode": "1570158037", "bookId": 327, "orderDate": "2017-07-24 14:11:52", "mobileNo": "09873456789", "isFavorite": false, "price": 45000, "bookName": "آموزش عربي انساني نکته ها",
    "nationalCode": "1570158037", "bookId": 366, "orderDate": "2017-07-24 14:11:58", "mobileNo": "09873456789", "isFavorite": false, "price": 19000, "bookName": "آبي عربي پيش1و2انساني",
]

任何帮助将不胜感激

最佳答案

do {
        let data = try JSONSerialization.data(withJSONObject: JsoonFactor, options: .prettyPrinted)
        let jsonString = String(data: data, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue))
        let jr = (jsonString?.replacingOccurrences(of: "\n", with: "", options: .regularExpression))!
        let jrrr = jr.removingWhitespaces()
        let urlEncodedJson = jrrr.addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)

关于ios - 展平具有重复值的字典数组 Swift 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45278881/

相关文章:

php - 警告 : array_merge(): Argument #2 is not an array Warning: array_merge(): Argument #1 is not an array

iOS - 返回 bool 值的用户身份验证函数

swift - 如何在 iOS 11 上模仿 `UITableViewController` 显示 `navigationBar` 中的大标题

ios - 在没有触摸手势识别器的情况下关闭键盘

php - 解析.com : send push notification from my own CMS

ios - 使用 URL Scheme 从 iOS 应用程序导航到 LinkedIn-Learning iOS 应用程序

javascript - 如何将八个标签的输入值添加到数组中,然后得到数组的素数? JavaScript

arrays - 数组上的 Shell 参数扩展

swift - 在 Xcode 9 中运行自定义 shell 脚本 '[cp] embed pods frameworks'

ios - 同时弹出并推送到同一 View 后未调用 viewDidLoad() 方法