过滤SwiftyJson数据

时间:2016-08-08 12:02:41

标签: arrays swift dictionary filter swifty-json

我有一些JSON数据。这是一个字典数组 SwiftyJson数组被称为jsonObj [" Customer"],看起来像:

[{
    "kode_customer": 1,
    "nama_customer": "Logam Jaya, UD",
    "alamat_customer": "Rajawali No 95",
    "kodepos": 60176,
    "kode_provinsi": 11,
    "gps_lat": -7.233834999999999,
    "gps_long": 112.72964666666667
}, {
    "kode_customer": 2,
    "nama_customer": "Terang, TK",
    "alamat_customer": "Raya Dukuh Kupang 100",
    "kodepos": 60225,
    "kode_provinsi": 11,
    "gps_lat": -7.285430000000001,
    "gps_long": 112.71538333333335
}, {
    "kode_customer": 3,
    "nama_customer": "Sinar Family",
    "alamat_customer": "By Pass Jomin No 295",
    "kodepos": 41374,
    "kode_provinsi": 9,
    "gps_lat": -6.4220273,
    "gps_long": 107.4748978
}, {
    "kode_customer": 4,
    "nama_customer": "Lancar Laksana, TB",
    "alamat_customer": "Jendral Sudirman No 69",
    "kodepos": 41374,
    "kode_provinsi": 9,
    "gps_lat": -6.4220273,
    "gps_long": 107.4748978
}]

现在我想以这种方式过滤数据

let filterdData = self.jsonObj["Customer"].filter({(JSON) -> Bool in
return self.jsonObj["Customer"]["kodepos"] < 6000
})

我想现在看到两个结果。但这不起作用,我认为因为缺少索引&#39;之间

self.jsonObj["Customer"] and ["kodepos"]

或者让我以另一种方式说出来

print (self.jsonObj["Customer"]["kodepos"]) ...我只想查看kodepos的所有值

如何在SwiftyJson中过滤数据。

2 个答案:

答案 0 :(得分:0)

一种方法是使用SwiftyJSON对象的 .arrayValue 来创建过滤器

UPDATE: classrecord <- read.csv(file.choose(), header = TRUE) (find the excel file)
        classrecord$Term_Grade <- ((classrecord$Q1 + classrecord$Q2 + classrecord$Q3 + classrecord$Q4)/150*50+50 *0.4 + classrecord$Exam*0.4+classrecord$Project*0.2)

请参阅SwiftyJSON存储库https://github.com/SwiftyJSON/SwiftyJSON#subscript

中的下标部分

答案 1 :(得分: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,否则无效。