I am working some portion of twitter api, and getting some JSON response using ASIHTTPREQUEST. Below is how the json representation looks like:
(
{
contributors = "<null>";
coordinates = "<null>";
"created_at" = "Tue Nov 29 15:48:35 +0000 2011";
entities = {
hashtags = (
);
media = (
{
"display_url" = "pic.twitter.com/650E1WRY";
"expanded_url" = "http://twitter.com/ashu1702/status/141544088850796545/photo/1";
id = 141544088854990848;
"id_str" = 141544088854990848;
indices = (
22,
42
);
"media_url" = "http://p.twimg.com/AfbdmVBCEAAPJvT.jpg";
"media_url_https" = "https://p.twimg.com/AfbdmVBCEAAPJvT.jpg";
sizes = {
large = {
h = 279;
resize = fit;
w = 215;
};
medium = {
h = 279;
resize = fit;
w = 215;
};
small = {
h = 279;
resize = fit;
w = 215;
};
thumb = {
h = 150;
resize = crop;
w = 150;
};
};
type = photo;
url = "http://t.co/650E1WRY";
}
);
urls = (
);
"user_mentions" = (
);
};
favorited = 0;
geo = "<null>";
id = 141544088850796545;
"id_str" = 141544088850796545;
"in_reply_to_screen_name" = "<null>";
"in_reply_to_status_id" = "<null>";
"in_reply_to_status_id_str" = "<null>";
"in_reply_to_user_id" = "<null>";
"in_reply_to_user_id_str" = "<null>";
place = "<null>";
"possibly_sensitive" = 0;
"retweet_count" = 0;
retweeted = 0;
source = "<a href=\"http://www.apple.com\" rel=\"nofollow\">iOS</a>";
text = "I am in Syria @(null) http://t.co/650E1WRY";
truncated = 0;
user = {
"contributors_enabled" = 0;
"created_at" = "Sun May 01 15:20:52 +0000 2011";
"default_profile" = 1;
"default_profile_image" = 1;
description = "<null>";
"favourites_count" = 0;
"follow_request_sent" = "<null>";
"followers_count" = 0;
following = "<null>";
"friends_count" = 5;
"geo_enabled" = 0;
id = 291164338;
"id_str" = 291164338;
"is_translator" = 0;
lang = en;
"listed_count" = 0;
location = "<null>";
name = "Ashutosh Tiwari";
notifications = "<null>";
"profile_background_color" = C0DEED;
"profile_background_image_url" = "http://a0.twimg.com/images/themes/theme1/bg.png";
"profile_background_image_url_https" = "https://si0.twimg.com/images/themes/theme1/bg.png";
"profile_background_tile" = 0;
"profile_image_url" = "http://a2.twimg.com/sticky/default_profile_images/default_profile_3_normal.png";
"profile_image_url_https" = "https://si0.twimg.com/sticky/default_profile_images/default_profile_3_normal.png";
"profile_link_color" = 0084B4;
"profile_sidebar_border_color" = C0DEED;
"profile_sidebar_fill_color" = DDEEF6;
"profile_text_color" = 333333;
"profile_use_background_image" = 1;
protected = 0;
"screen_name" = ashu1702;
"show_all_inline_media" = 0;
"statuses_count" = 62;
"time_zone" = "<null>";
url = "<null>";
"utc_offset" = "<null>";
verified = 0;
};
}
)
My concern here is, before actually setting the entire content to data model, is there any specific way to set the parameters to empty string?
Like there are two entities as “time_zone” = “”; and “utc_offset” = “”; Is there anyway to iterate through the json response and set @”” empty string. I don’t want to validate for NSNULL feature at every key point, and it can cause my app to have some loop holes to crash at some point, therefore I just want to figure out how to iterate through such complex json to check each entity and set empty string for NSNull type class. I did tried recursive way but it only gives the list of the upper level keys not the entities within the dictionary.
Thanks
The
"<null>"values appear to be character strings, not NSNulls. If you want to replace the character string with"", you could usestringByReplacingOccurrencesOfstring:withString:to convert them en mass (as some risk of converting stuff you don’t intend to).(But to be certain, it would be good if you presented some of the raw JSON, vs the Objective-C
descriptionof the NSArray/NSDictionary objects which is apparently what you’re showing.)