SwiftyJSONは、さまざまな方法(CocoaPods、Carthageなど)でインポート可能なSwiftの非常に便利なアドオンです。一般的にJSONファイルが必要なので、多くのプロジェクトで使用しています。だから、私は必要な引数で呼び出すことができ、JSONファイルから生のString値を得ることができる素敵なシンプルな関数が必要でした。ここでシンプルなgetJSON()関数
0
A
答えて
0
は、私が作成した関数は、この関数の使用例は、
func getJSON(value: [String], fileName: String) -> String{
guard let path = Bundle.main.path(forResource: fileName, ofType: "json"),
let jsonData = NSData(contentsOfFile: path) else{
print("Couldn't find the file on disk or failed to read it")
return "ERR."
}
let jsonObject = JSON(data: jsonData as Data)
guard let jsonValue = jsonObject[value].string else{
print("FAILED to find JSON object")
return "ERR."
}
return jsonValue
}
...(もちろん、正しくお使いのXcodeスウィフトプロジェクト内に統合することがSwiftJSONを必要としない)それを自分で使用すること自由に感じ、考えていますlet myJsonValue = getJSON(value: ["people","person1"], fileName: "database")
となります。person1人グループの値がdatabase.jsonというJSONファイルになります。だから、database.json
ファイルはこの
{
"people" : {
"person1" : "Bob",
"person2" : "Steve",
"person3" : "Alan",
}
}
ようなものに見えた場合、関数は、これは誰にも助けている、またはあなたはそれのための任意の提案を持っているならば、私に知らせてください"Bob"
希望の値を返します!建設的な批判は常に高く評価された。
1
我々はその内の1つのコンストラクタメソッドであるプロトコルを作成するステップ1とモデルクラス
protocol JSONable {
init?(parameter: JSON)
}
class Style: JSONable {
let ID :String!
let name :String!
required init(parameter: JSON) {
ID = parameter["id"].stringValue
name = parameter["name"].stringValue
}
/* JSON response format
{
"status": true,
"message": "",
"data": [
{
"id": 1,
"name": "Style 1"
},
{
"id": 2,
"name": "Style 2"
},
{
"id": 3,
"name": "Style 3"
}
]
}
*/
}
ステップ2.我々は、クラス型オブジェクト
extension JSON {
func to<T>(type: T?) -> Any? {
if let baseObj = type as? JSONable.Type {
if self.type == .array {
var arrObject: [Any] = []
for obj in self.arrayValue {
let object = baseObj.init(parameter: obj)
arrObject.append(object!)
}
return arrObject
} else {
let object = baseObj.init(parameter: self)
return object!
}
}
return nil
}
}
をモデル化するためにJSONを変換するJSONの拡張を作成します
ステップ3. Alamofireまたは他のコードでコードを使用します。
Alamofire.request(.GET, url).validate().responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
var styles: [Style] = []
if let styleArr = json["data"].to(type: Style.self) {
styles = styleArr as! [Style]
}
print("styles: \(styles)")
case .failure(let error):
print(error)
}
}
これが役立つことを願っています。
詳細については、このリンクを参照してください。
https://github.com/SwiftyJSON/SwiftyJSON/issues/714
関連する問題
- 1. シンプル$ .getJSON(「アドレス」)、機能(RES)は、{私が簡単な関数持っ
- 2. シンプルなJavascript関数
- 3. $ .getJSONの成功関数は
- 4. ReactJS SetState関数$ .getJson実際
- 5. $ .getJSON成功関数の動作方法
- 6. javascript - getJSONのjQueryコア関数をオーバーライド
- 7. $ .getJSON関数内でPHP関数を呼び出す方法は?
- 8. シンプルなc関数segfaults on free
- 9. シンプルなJavaScript関数の問題
- 10. Prolog - シンプルな関数を作成する
- 11. jqueryライブ関数のシンプルなバージョン
- 12. シンプルなC関数呼び出し
- 13. jQueryのgetJSON関数は与えていない、警告
- 14. $ .getJSON関数内のグローバル配列にアクセスできない
- 15. $ .getJson関数がdivに追加されていない
- 16. (コード)はシンプル、セキュアハッシュ関数
- 17. なぜF - シンプルな関数:F.prototype!== F .__ proto__しかしFunction.prototype ===関数.__ proto__?
- 18. jquery getjson関数で変数を設定できませんか?
- 19. $ .getjson .done関数から変数を取得する方法は?
- 20. シンプルな "数学"キャプチャ
- 21. IEでシンプルなJquery関数が動作しない
- 22. シンプルなPLPythonu関数が表示されない
- 23. シンプルなjavascript関数の定義されていないエラー
- 24. 非常にシンプルなカスタムtaglib関数が動作しない
- 25. シンプルなJS関数が動作しない
- 26. スピーディーなシンプルな変数
- 27. $ .getJSON pullingしない
- 28. jQueryでgetJSON関数を使用しているときにコールバック関数が機能しない
- 29. $ .getJSONは "成功"関数を呼び出しません
- 30. getJSON jquery関数のパーサとして属性を与える