Modify JSON in Swift
Modify JSON in Swift
- Subject: Modify JSON in Swift
- From: Rick Mann <email@hidden>
- Date: Fri, 06 Nov 2015 22:54:32 -0800
I'm trying to do this, but I can't modify the JSON structure.
-----------------------
import Foundation
let s = "{ \"images\" : [ { \"thumb\" : \"url1\", \"width\" : 10 }, { \"thumb\" : \"url2\", \"width\" : 20 } ] }"
let data = (s as NSString).dataUsingEncoding(NSUTF8StringEncoding)!
do
{
if var json = try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) as? [String:AnyObject]
{
print("JSON: \(json)")
if var images = json["images"] as? [[String:AnyObject]]
{
for var image in images
{
if let thumbURL = image["thumb"]
{
image["thumb"] = "FOOBAR: \(thumbURL)"
print("new: \(image["thumb"])")
}
}
let newData = try NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions(rawValue: 0))
let s2 = NSString(data: newData, encoding: NSUTF8StringEncoding)
print(s2)
}
}
}
catch let e as NSError
{
print("Error parsing model.json: \(e)")
}
-----------------------
JSON: ["images": (
{
thumb = url1;
width = 10;
},
{
thumb = url2;
width = 20;
}
)]
new: Optional(FOOBAR: url1)
new: Optional(FOOBAR: url2)
Optional({"images":[{"thumb":"url1","width":10},{"thumb":"url2","width":20}]})
-----------------------
But it seems the way I drill down into the initial json dictionary gives me copies, or otherwise prevents me from modifying the dictionary like this.
Any suggestions on what I can do? I really don't want to have to walk and rebuild the JSON myself.
--
Rick Mann
email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden