2017-07-20 20 views
2

JSONの仕組みを理解するのに何時間も費やしました。私はあきらめます、皆さんは私を助けてくれますか?スウィフト3.0の検索でjson検索値が返されます。

ここに私が必要なものがあります。

[ 
    { 
     "partnumber": "1", 
     "description": "part#1" 
    }, 
    { 
     "partnumber": "2", 
     "description": "part#2" 
    }, 
    { 
     "partnumber": "3", 
     "description": "part#3" 
    } 
] 

と私は説明の値を返すtextfield.text ="1"場合にJSONにクエリを送信しようとしています:私はこのようになりますローカルJSONを持っています。

私は、ファイルを開いて、それを解析しますが、私はそこに

private func readJson() { 
     do { 
      if let file = Bundle.main.url(forResource: "convertcsv", withExtension: "json") { 
       let data = try Data(contentsOf: file) 
       let json = try JSONSerialization.jsonObject(with: data, options: []) 
       if let object = json as? [Any] { 

       // what to do here ??????????? 
       print(object) 

       } else { 
        print("JSON is invalid") 
       } 
      } else { 
       print("no file") 
      } 
     } catch { 
      print(error.localizedDescription) 
     } 
    } 

立ち往生していますすることができます私たちは、それが、その場合に働くだろうか、私たちはループを使用する必要がない、JSONをフィルタリングできることを見たことがありますか?

答えて

0

このすべき作品ように、あなたのJSONが文字列のみが含まれているように見える:おそらく

private func readJson() { 
    do { 
     if let file = Bundle.main.url(forResource: "test", withExtension: "json") { 
      let data = try Data(contentsOf: file) 

      if let jsonResult = try JSONSerialization.jsonObject(with: data, options: []) as? [[String:String]] { 

       for array in jsonResult { 
        if array["partnumber"] == "1" { 
         print(array["description"]) // part#1 
        } 
       } 
      } else { 
       print("JSON is invalid") 
      } 
     } else { 
      print("no file") 
     } 
    } catch { 
     print(error.localizedDescription) 
    } 
} 

ない、それを行うためのクリーンな方法、あなたはいくつかのライブラリ(SwiftyJSONを...)を使用する場合があります

+0

はありがとうTagTaco、これは私が思ったよりも簡単でした!! – Julien7377

関連する問題