2015-08-16 101 views
0

我正在使用SwiftyJSON來獲取列表並將其打印到TableView中。 我的問題是我無法過濾這個字典,我試圖做一個for循環來刪除不需要的元素(或者甚至推新元素),但我找不到一種方法來刪除或推送與JSON元素SwiftyJSON提供的類型。如何過濾SwiftyJSON中的JSON字典

var FilteredTripList:JSON = TripsList 
for (key: String, Trip: JSON) in TripsList { 
    if String(stringInterpolationSegment: Trip["TripFrom"]) != SearchFilter["From"]! 
    || String(stringInterpolationSegment: Trip["TripTo"]) != SearchFilter["To"]! { 
      // I'm hoping for something like the line below 
      // FilteredTripList[key.toInt()!].remove() 
     } 
    } 
} 
+0

你的TripsList是什麼類型?它是一個JSONArray?還是一個JSONObject?因爲你的for循環是基於鍵的JSONObjects ... JSONArrays是基於索引的......所以我需要知道TripList是什麼類型的? –

+0

這是來自SwiftyJSON的JSON –

+0

是的,它是一個JSON很明顯,但是它是JSONArray還是JSONObject?它只能是這些類型之一? –

回答

0

我不知道SWIFTY JSON,因爲我總是使用與NSJSONSerialization原生方式......所以我猜

請改變這一行

FilteredTripList[key.toInt()!].remove() 

這條線

FilteredTripList.removeValueForKey(key) 

而且寫我發生了什麼

+0

不,嘗試過那些,不工作。我需要一些適用於SwiftyJSON的東西 –

0

嘗試是這樣的:

FilteredTripList.dictionaryObject?.removeValueForKey(key.toInt()!) 

它應該工作。

0

對我來說,最好的辦法來篩選[JSON]在做這樣的:

 self.places = self.locals.filter({ (json) -> Bool in 
      return json["monthlyPurchasesLocalCount"].intValue > 0; 
     }); 
0

與下面的代碼片段嘗試,如果你正在使用SwiftyJSON,

它的作品完美的我。經過很多次嘗試後我得到了它。

let jsonObj = some JSON 
let jobj = jsonObj.arrayValue 
if !jobj.isEmpty { 
    let j = jobj.filter({ (json) -> Bool in 
     return json["country"].stringValue == "US"; }) 
    print ("filterdData: \(j)") 
} 

注:jobj應該.arrayValue,否則將無法正常工作。