2011-08-31 92 views
1

即时得到的JSON响应到我的应用[Twitter的web服务],是一个字符串,但是,例如索引0处的对象是:IOS阵列到字典或阵列

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]的对象,那么如何将这些对象分解为更多的数组或字典?

我specifaclly想要的文字键

text = "Apple vs Samsung tablets [haha and Samsung is an Apple hardware provider!!]\nhttp://t.co/rvv43Hy"; 

非常感谢

+1

(第一个)“text”值很容易,因为它位于外部字典中。只需使用'objectForKey:@“文本”'。 (但是你为“文本”显示了不同的值,因此它可能是更深入的嵌入版本。) –

回答

3

可能已经有一个为此而构建的解析器,但如果没有,我认为您会发现以下方法有用。

NSArray *strings = [input componentsSeparatedByString:@";"]; 

它返回一个字符串数组(在本例中)“;”作为分隔符。

{贡献者= “”,坐标= “”,...}

您可以将它们进一步分离他们:

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]; 
} 

有似乎是一些额外的数据响应的开始,你可能不得不首先解决这个问题。

+0

OP的数据是包含另一个NSDictionary的NSDictionary。试图用'componentsSeparateByStrings'解析它是他的愚蠢之处。 –

2

你会的,例如,从你的字典外提取“用户”对象并将其赋值给一个NSDictionary变量。然后,您可以从第二个字典中提取“default_profile”。

可以编写一个简单的“路径导航器”工具,通过“路径符号”访问单个实体,而不必明确提取组件,但我不知道“罐头”。

1

以防万一有人在找这个,我结束了使用

开源JSON框架由斯蒂格Brautaset。 及其解析器, 并遵循一些指令f rom here