I think its reasonable to copy values from the JSON dictionary in your init method. As far as the public API goes, I wouldn't worry too much about what other objects choose to do with the values that you vend. It's up to them to copy objects if needed.