スーパー初心者はこちら。 私はデータを通じてitterateとキー名によって要素を呼び出すことができるように辞書オブジェクトにそれを作る、私はファイルを読み込むしようとしています私のプロジェクトでjson to key - >値形式
[
{
"id": "1",
"name": "hello",
"description": "aaa"
},
{
"id": "2",
"name": "world",
"description": "bbb"
}
]
を埋め込まれitems_tmp.json
という名前のこのサンプルJSONを持っています。
は、これまでのところ私は、のviewDidLoad内にこれを持っている:
let itemsListJson:String = "jsons/items_tmp"
guard let urlItems = Bundle.main.url(forResource: itemsListJson, withExtension: "json") else { return }
do{
let dataItems = try Data(contentsOf: urlItems)
let jsonItems = try JSONSerialization.jsonObject(with: dataItems, options: .mutableContainers)
guard let arrayItems = jsonItems as? [Any] else {return}
print(arrayItems.count)
for i in 0 ..< arrayItems.count {
let max_damage = arrayItems[i]
print(max_damage)
}
}
catch{
print(error)
}
は、次の出力と結果:
2
{
description = aaa;
id = 1;
name = hello;
}
{
description = bbb;
id = 2;
name = world;
}
は、だから、私は情報を取得、それはもキーである - >値形成
キーで特定の値を取得しようとしたとき
let name = arrayItems[i].name
私が取得:
guard let arrayItems = jsonItems as? [String: Any] else {return}
私は何のデータを取得していない:私は辞書構造に次の行を変更した場合、いずれかが一方何のメンバー名
を持っていません入力します。
その仕組みがわかりません。
すべてのヘルプは非常にあなたがどこにもそれを定義しないので、「いずれかが全くメンバー名を持っていないタイプ」を取得します
私は内容を見るのに興味があります'items_tmp.json'です。単純なテキストファイルを含む –
@InfinityJames:[ \t { \t \t "ID": "1"、 \t \t "名前": "こんにちは"、 \t \t "説明": "AAA" \t}、 \t { \t \t "ID": "2"、 \t \t "名前": "世界"、 \t \t "説明": "BBB" \t}] –
JSONは辞書の配列です。それに応じてキャスト。 – rmaddy