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
rm...@latencyzero.com



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to