2016-03-31 72 views
0

我可以成功解析来自我的json文件的所有数据。在我收集视图中的应用程序中,我尝试仅将1个图像数据解析为单元格,但我将它与所有数据相关联。我将和你一起分享JSON代码和解析代码,并最后一次模拟器的屏幕截图。我希望你能帮助我。 谢谢如何从swift中获取JSON的特定值

JSON代码

{ 
    "retcode": "200", 
    "content": [{ 
     "id": 3, 
     "name": "X Treme", 
     "desc": "Polikarbon G\u00f6vde", 
     "category": "Design", 
     "thumbnail": [{ 
      "id": 2, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_red.jpg" 
     }, { 
      "id": 3, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_orange.jpg" 
     }, { 
      "id": 4, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_blue.jpg" 
     }, { 
      "id": 5, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_green.jpg" 
     }, { 
      "id": 6, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_clear.jpg" 
     }, { 
      "id": 7, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_grey.jpg" 
     }, { 
      "id": 8, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/xtreme_slred.jpg" 
     }] 
    }, { 
     "id": 4, 
     "name": "Opal", 
     "desc": "Polikarbon Sandalye", 
     "category": "Design", 
     "thumbnail": [{ 
      "id": 9, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/opal_orange.jpg" 
     }, { 
      "id": 10, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/opal_blue.jpg" 
     }, { 
      "id": 11, 
      "thumbnail": "http:\/\/www.ertonga.com\/product_images\/opal_green.jpg" 
     }] 
    }], 
    "error_msg": "" 
} 

Swift代码

if let url = NSURL(string: urlString) { 

      if let data = try? NSData(contentsOfURL: url, options: []) 

      { 


       do { 
        let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) 


        var valueforname:Int = 0 

        if let blogs = json["content"] as? [[String: AnyObject]] { 


         for blog in blogs { 

          if let blog2 = blog["thumbnail"] as? [[String: AnyObject]] { 

           for blog3 in blog2 { 

            if let blog4 = blog3["thumbnail"] as? String { 

             var checkvalue1 = blog3["id"] as? Int 





             if Imagearray.contains(String(checkvalue1!)) { 


                    } 

             else { 


               Imagearray.append(blog4) 
              } 
             } 





            } 

           } 




         } 
        } 
       } 





       catch { 
        print("error serializing JSON: \(error)") 
       } 


      } 
     } 

,这里是屏幕截图。你可以看到椅子的不同颜色的我想只有1个颜色的每个项目

enter image description here

回答

0

试试这个:

NSURL(string: urlString) { 

    if let data = try? NSData(contentsOfURL: url, options: []) 

    { 
     do { 
      let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) 
      var valueforname:Int = 0 
      if let blogs = json["content"] as? [[String: AnyObject]] { 
       for blog in blogs { 
        if let blog2 = blog["thumbnail"] as? [[String: AnyObject]] { 
         if let blog4 = blog2["thumbnail"] as? String 
         { 
          Imagearray.append(blog4) 
         } 
        } 
       } 
      } 
     } 
     catch { 
      print("error serializing JSON: \(error)") 
     } 
    } 
} 
+0

谢谢回答我,但我得到了错误关于不能下标值类型[String:AnyObhect]],其索引类型为'String' –

+0

ı认为我们不能使用而不使用blog2 [thumbnail] as String –