我有一个JSON,它有一个JSONArray作为其中一个json的值。这是它的例子。
[
{
"id": 1,
"symptoms" : [{\"key\":\"sample1\",\"value\":5},{\"key\":\"sample2\",\"value\":5}]
},
{
"id": 2,
"symptoms" : [{\"key\":\"sample3\",\"value\":1}]
},
{ "id": 3,
"symptoms" : []
},
{
"id": 4,
"symptoms": [{\"key\":\"sample4\",\"value\":1}]
}
]
所以我正在做的是我正在解析内部JSON并将其放在一个字符串数组中。但每当我查看symptoms
时,它都会跳过空的JSONArray。因此,每当我打印字符串数组时,它就像这样(给定样本在顶部)["sample1", "sample2", "sample3", "sample4"]
。但我想做的是每当JSONArray为空时将""
附加到String数组,因此它应该像["sample1", "sample2", "sample3", "", "sample4"]
一样。有人可以帮我这个吗?这是我的代码
var arrayHolder: [String] = []
var idHolder: [Int] = []
for item in swiftyJSON.arrayValue {
idHolder.append(item["id"].intValue)
//for the inner JSON
let innerJSON = JSON(data: item["symptoms"].dataUsingEncoding(NSUTF8StringEncoding)!)
for symptoms in innerJSON.arrayValue {
arrayHolder.append(symptoms["key"].stringValue)
}
}
print(idHolder) // [1,2,3,4]
print(arrayHolder) // ["sample1","sample2","sample3","sample4"]
答案 0 :(得分:1)
只需检查val mostRated = ratings.map(_._2.product)
.countByValue
.toSeq
.sortBy(- _._2)
.map(_._1)
是否为空:
innerJSON