我得到了我的应用程序[Twitter Web服务]的JSON响应,是一个字符串,但是例如索引0处的对象是:
es array en:0, tiene {
contributors = "<null>";
coordinates = "<null>";
"created_at" = "Thu Aug 04 23:26:05 +0000 2011";
favorited = 0;
geo = "<null>";
id = 99259843982016513;
"id_str" = 99259843982016513;
"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://twitter.com/tweetbutton\" rel=\"nofollow\">Tweet Button</a>";
text = "Stack Exchange Q&A site proposal: Freelance Workers http://t.co/yaW1RHp";
truncated = 0;
user = {
"contributors_enabled" = 0;
"created_at" = "Mon Jul 13 19:39:31 +0000 2009";
"default_profile" = 0;
"default_profile_image" = 0;
description = "My goal is to enable the brain computer interfaces to use the possibilities of mobile platforms for robotics and physical computing";
"favourites_count" = 0;
"follow_request_sent" = "<null>";
"followers_count" = 92; ...
所以我的数组有17个对象[对于每个twitt],那么如何将这些对象分解为更多的数组或字典呢?
我特别想要文本键
text = "Apple vs Samsung tablets [haha and Samsung is an Apple hardware provider!!]\nhttp://t.co/rvv43Hy";
非常感谢
答案 0 :(得分:3)
可能已经为此构建了解析器,但如果没有,我认为您会发现以下方法有用。
NSArray *strings = [input componentsSeparatedByString:@";"];
它返回一个字符串数组(在这种情况下)“;”作为分隔符。
{contributors =“”,coordinates =“”,...}
你可以将它们进一步分开:
NSDictionary *dict = [NSDictionary dictionary];
for (NSString *s in strings)
{
NSArray *keyValue = [s componentsSeparatedByString:@"="];
NSString *key = [keyValue objectAtIndex:0];
NSString *value = [keyValue objectAtIndex:1];
[dict setValue:value forKey:key];
}
在响应开始时似乎有一些额外的数据,你可能不得不首先关闭它。
答案 1 :(得分:2)
例如,您将从外部字典中提取“user”对象并将其分配给NSDictionary变量。然后你可以从第二个字典中提取“default_profile”。
人们可能会编写一个简单的“路径导航器”工具,它可以通过“路径表示法”访问单个实体,而无需显式提取组件,但我不知道“罐头”。
答案 2 :(得分:1)
以防其他人正在寻找这个,我最终使用了
Stig Brautaset的开源JSON框架。 用它的解析器, 并遵循一些说明f rom here