[解決済み】SwiftでJSONファイルを読み込む
2022-04-17 09:47:27
質問
私は、JSONファイルをSwiftに読み込んで、それを弄ることができるようにしようとすることに本当に苦労しています。私は2日間の大部分を費やして、再検索と異なる方法を試していますが、まだ運がないので、私は誰かが正しい方向に私を指すことができるかどうかを確認するためにStackOverFlowにサインアップしています。
私のJSONファイルはtest.jsonと呼ばれ、以下の内容を含んでいます。
{
"person":[
{
"name": "Bob",
"age": "16",
"employed": "No"
},
{
"name": "Vinny",
"age": "56",
"employed": "Yes"
}
]
}
ファイルはドキュメントに直接保存されているので、以下のコードでアクセスしています。
let file = "test.json"
let dirs : String[] = NSSearchPathForDirectoriesInDomains(
NSSearchpathDirectory.DocumentDirectory,
NSSearchPathDomainMask.AllDomainMask,
true) as String[]
if (dirs != nil) {
let directories: String[] = dirs
let dir = directories[0]
let path = dir.stringByAppendingPathComponent(file)
}
var jsonData = NSData(contentsOfFile:path, options: nil, error: nil)
println("jsonData \(jsonData)" // This prints what looks to be JSON encoded data.
var jsonDict = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: nil) as? NSDictionary
println("jsonDict \(jsonDict)") - This prints nil.....
もし誰かが、JSONファイルをデシリアライズして、アクセス可能なSwiftオブジェクトに置くことができる方法について、正しい方向への一押しを与えてくれるなら、私は永遠に感謝します!
よろしくお願いします。
Krivvenz.
解決方法は?
以下のコードに従ってください。
if let path = NSBundle.mainBundle().pathForResource("test", ofType: "json")
{
if let jsonData = NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe, error: nil)
{
if let jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers, error: nil) as? NSDictionary
{
if let persons : NSArray = jsonResult["person"] as? NSArray
{
// Do stuff
}
}
}
}
配列 "persons"には、キーとなる人物に関するすべてのデータが格納されます。それを取得するために反復処理します。
Swift 4.0。
if let path = Bundle.main.path(forResource: "test", ofType: "json") {
do {
let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe)
let jsonResult = try JSONSerialization.jsonObject(with: data, options: .mutableLeaves)
if let jsonResult = jsonResult as? Dictionary<String, AnyObject>, let person = jsonResult["person"] as? [Any] {
// do stuff
}
} catch {
// handle error
}
}
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み] JSONデータをファイルに書き込むにはどうしたらいいですか?
-
[解決済み】Github WikiでJSONブロックをスタイルする方法は?
-
[解決済み】文字列のJSON配列はどのように表現するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] VSCodeでlaunch.jsonに環境変数を追加する方法
-
[解決済み] Golang json Unmarshal "予期せぬJSON入力の終了"
-
[解決済み] tsconfig.jsonは何のためにあるのですか?
-
[解決済み] JSONの未定義の値型
-
[解決済み】TypeScriptでJSONファイルを取り込む
-
[解決済み】Goを使ってJSONをpretty-printするにはどうすればいいですか?
-
[解決済み】JSONのキーは引用符で囲む必要があるのでしょうか?
-
[解決済み】Github WikiでJSONブロックをスタイルする方法は?
-
[解決済み】JSON文字列を辞書に変換する方法は?
-
[解決済み】HTTPの "406-Not Acceptable Response "とは何ですか?