【问题标题】:Nested for-in loops to search JSON data for string matches Swift嵌套 for-in 循环在 JSON 数据中搜索字符串匹配 Swift
【发布时间】:2016-07-27 02:50:09
【问题描述】:

我正在努力寻找一种循环遍历 JSON 数据以查找字符串匹配项的方法。我在每一行中有超过 90 个值,所以我不想使用我已经注释掉的 row[""] 方法。

我收到错误:类型“元素”(又名“AnyObject”)不符合协议“SequenceType”。

所以我认为这是因为 JSON 数据不适用于 我正在使用“for (key, value) in row”方法。我所有的搜索都只是建议使用 row[""]。

任何帮助将不胜感激!

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
    for row in result {
        for (key,value) in row {
            //let value = row["city"] as! String
            if value.lowercaseString.containsString(searchText.lowercaseString){
                print("\(value) matches \(searchText)")
            }
        }
    }
}

数据片段(开始和结束):

{
0 = 469347;
1 = 20;
10 = "2015-09-16";
11 = "2015-09-18";
12 = 1;
13 = 6;
14 = "$250 free fuel against receipts";
15 = "";

....

transmission = Manual;
tv = 0;
"tyre_preassure" = "";
"unique_key" = 98fd557e5988ea0d66cfaf9cf2742789;
"vehicle_type" = "3 Berth Hitop";
"vehicle_type_id" = 219;
"waste_water" = "";
width = "";
year = "";
}
{
...
}

【问题讨论】:

  • 请包含您正在搜索的 JSON 片段
  • 您要在哪个键上搜索?
  • 我要全集搜索

标签: json swift for-loop


【解决方案1】:

假设您的字典仅包含每个键值的 String,我认为您不需要嵌套循环来执行此操作。试试这个

        for (key,value) in result {
            let myString = value as! String
            if myString.lowercaseString.containsString(searchText.lowercaseString){
                print("\(myString) matches \(searchText)")
            }
        }

【讨论】:

  • 嘿抱歉我应该澄清一下,数据片段只是数据中的众多片段之一。我还有另外 38 个类似的结构,这就是我使用嵌套循环的原因
猜你喜欢
  • 2015-05-05
  • 2017-10-23
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 2011-04-28
相关资源
最近更新 更多