一連の辞書があり、それらをjsonオブジェクトとして必要とするユースケースがあります。
var data = [Dictionary<String, String>]()
//append items
var bytes = NSJSONSerialization.dataWithJSONObject(data, options: NSJSONWritingOptions.allZeros, error: nil)
var jsonObj = JSON(NSString(data: bytes!, encoding: NSUTF8StringEncoding)!)
println(jsonObj)
println(jsonObj[0])
最初の印刷ステートメントは私に与えます
[
{"price":"1.20","city":"Foo","_id":"326105","street":"One"},
{"price":"1.20","city":"Bar","_id":"326104","street":"Two"}
]
二番目
null
しかし、json配列の最初の要素を返すことを期待しています。私が間違っていることは何ですか?
ドキュメントによると、これはあなたが必要とするすべてであるはずです。
var data = [Dictionary<String, String>]()
//append items
var jsonObj = JSON(data)
println(jsonObj)
println(jsonObj[0])
配列を直接JSON
オブジェクトに変換する際に問題がありますか?
そこの4行目(JSON)でどのメソッドを使用しているかはわかりませんが、以下に示すNSJSONSerialization.JSONObjectWithData
を使用してコードを機能させました。
var data = [Dictionary<String, String>]()
data.append(["price":"1.20","city":"Foo","_id":"326105","street":"One"])
data.append(["price":"1.20","city":"Bar","_id":"326104","street":"Two"])
let bytes = try! NSJSONSerialization.dataWithJSONObject(data, options: NSJSONWritingOptions.PrettyPrinted)
var jsonObj = try! NSJSONSerialization.JSONObjectWithData(bytes, options: .MutableLeaves) as! [Dictionary<String, String>]
print(jsonObj)
print(jsonObj[0])
...出力付き.。
"[[price: 1.20, city: Foo, _id: 326105, street: One], [price: 1.20, city: Bar, _id: 326104, street: Two]]"
"[price: 1.20, city: Foo, _id: 326105, street: One]"
編集:swifty-jsonのタグが表示されます。私はそれをよく知らないが、上に含めたコードは組み込みメソッドで動作する。