Quincey explained why it doesn’t work, value semantics run deep and consistent 
in Swift. 

What you could do if you wanted, after messing with images, put it back into 
the json dictionary again, after your for var image in .. code

json[ “images” ] = images

now you have modified json to have a new images member. 

> On 7 Nov 2015, at 14:54, Rick Mann <rm...@latencyzero.com> wrote:
> 
> 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/rols%40rols.org
> 
> This email sent to r...@rols.org


_______________________________________________

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