【问题标题】:how to get the data in array of dictionary in swift?如何快速获取字典数组中的数据?
【发布时间】:2016-06-30 08:40:49
【问题描述】:

我想在下面的代码中以[[value1,value2,...],[value1, value2],[value1],.....]这个形式保存子类数据

var subcategories = [SubCategory]()
                    for (_, item) in json {
                        //do something with item.id, item.name

                        for (_, subcategory) in item["subcategory"] {

                            let subcategory = SubCategory(
                                id: Int(subcategory ["id"].stringValue),
                                name: subcategory ["name"].string,
                                desc: subcategory ["desc"].string,
                                image: subcategory ["image"].string,
                                coupon: Int(subcategory ["coupon"].stringValue),
                                icon: subcategory ["icon"].string,
                                order: Int(subcategory ["order"].stringValue),
                                aname: subcategory ["aname"].string,
                                options: Int(subcategory ["options"].stringValue),
                                items: subcategory ["items"].arrayObject
                            )

                            subcategories.append(subcategory)

                        }



                            print(subcategories.count)
                            for sub in subcategories {
                            print(sub.name)
                            print(sub.id)
                            print(sub.desc)

                            self.SUBCATNAME.append(sub.name!)
                            self.SUBARRAY?.append(self.SUBCATNAME)
                           }
                         print(self.SUBCATNAME)
                         print(self.SUBARRAY)
                      }

我需要将所有子类别名称附加到一个字典数组中,如上述结构。在这里,我将 SUBARRAY 创建为 var SUBARRAY:[[String]] = []。但价值为零。在这里,我使用 Swiftyjson 从 Api 获取 json 数据。这个怎么实现?

我的示例 json 数据如下: 同样明智的是,那里有很多子类别

           [
   {
    "id": "244",
    "name": "PIZZAS",
    "subcategory": [
      {
        "id": "515",
        "name": "MARGARITA",
        "description": "Cheese and Tomato",
        "image": "",
        "icon": "",
        "coupon": "1",
        "order": "1",
        "aname": "",
        "options": "2"
        },
        {
        "id": "516",
        "name": "ABC",
        "description": "HNDDSGHFD",
        "image": "",
        "icon": "",
        "coupon": "1",
        "order": "1",
        "aname": "",
        "options": "2",


         },
         {
        "id": "516",
        "name": "DEF",
        "description": "HFDGFJJFHFKH",
        "image": "",
        "icon": "",
        "coupon": "1",
        "order": "1",
        "aname": "",
        "options": "2",


         }
        ]
    }, 
    {
     ......
     }
  ]

【问题讨论】:

    标签: arrays swift dictionary swifty-json


    【解决方案1】:

    如果你试试这个代码

          for (NSDictionary *dictionary in ArrCategory)
     {
             NSMutableArray *sub_cat_data=[dictionary objectForKey:@"sub_cat_data"];
             for (NSDictionary *sub_cat_dict in sub_cat_data)
              {
                     NSMutableArray *sub_cat_data=[sub_cat_dict objectForKey:@"sub_data"];
                      for (NSDictionary *dictionary1 in sub_cat_data)
                      {
                        NSMutableDictionary *Dic_Sub_cat=[[NSMutableDictionary alloc]init];
                        NSString *str_dic_id=[dictionary1 objectForKey:@"sub_id"];
                        NSString *str_dic_name=[dictionary1 objectForKey:@"sub_name"];
                        [Dic_Sub_cat setObject:str_dic_id forKey:@"sub_id"];
                        [Dic_Sub_cat setObject:str_dic_name forKey:@"sub_name"];
                        [Dic_Sub_cat setObject:@"0" forKey:@"sub_Chekid"];
                        [New_ArrCategory addObject:Dic_Sub_cat];
                       }
               }
    }
    

    快速示例

    if let results: NSMutableArray = jsonResult["data"] as? NSMutableArray
                        {
                            var ArrMoodtype2 : NSMutableArray!
                            ArrMoodtype2 = NSMutableArray()
    
                            ArrMoodtype2 = results
                            ArrFeel = NSMutableArray()
                            for var i = 0; i < ArrMoodtype2.count; i++
                          {
                                var Dic : NSMutableDictionary!
                                Dic = NSMutableDictionary()
                                let tempDic: NSMutableDictionary = ArrMoodtype2[i] as! NSMutableDictionary
                                let strMoodCatID = tempDic ["mood_cat_id"] as! String
                                let strMoodID = tempDic ["mood_id"] as! String
                                let strMoodImage = tempDic ["mood_image"] as! String
                                let strMoodName = tempDic ["mood_name"] as! String
    
                                Dic.setObject(strMoodCatID, forKey: "mood_cat_id")
                                Dic.setObject(strMoodID, forKey: "mood_id")
                                Dic.setObject(strMoodImage, forKey: "mood_image")
                                Dic.setObject(strMoodName, forKey: "mood_name")
                                ArrFeel.addObject(Dic)
    
                            }
             }
    

    【讨论】:

    • 此代码在目标 c 中。你能发送 swift 代码吗
    猜你喜欢
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2021-01-19
    • 2021-07-01
    • 2016-10-18
    • 1970-01-01
    • 2020-11-12
    相关资源
    最近更新 更多