如何解析以下字符串
{
City = "New York";
Country = "United States";
CountryCode = us;
}
将“”中的值附加在一起,并将剩余的字符串省略。我需要将修改后的字符串作为“纽约,美国”。
CFStringRef address = ABMultiValueCopyValueAtIndex(multiValue, identifier);
当我将CFStringRef
投射到NSString
时,我会收到上面记录的表格。如何从字符串
答案 0 :(得分:0)
如果您从网络上接收此数据字符串(可能是JSON),您可以像这样处理数据(iOS 5):
- (void)processData:(NSData *)responseData {
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:responseData
options:kNilOptions
error:&error];
NSString* city = [[json objectForKey:@"Address"] objectForKey:@"City"];
NSString* country = [[json objectForKey:@"Address"] objectForKey:@"Country"];
NSString* result = [city stringByAppendingFormat:@", %@",country];
NSLog(@"%@", result); //New York, United States
}
相反,如果此字符串是字典表示,则正确的格式应如下所示:
NSString *str=@"Address = {"
@"City = \"New York\";"
@"Country = \"United States\";"
@"CountryCode = us; };";
因此,如果你真的想从NSString传递给NSDictionary,你可以这样使用NSPropartyListSerialization:
NSError* error;
NSData *dat=[str dataUsingEncoding:NSUTF8StringEncoding];
NSPropertyListFormat plistFormat;
NSDictionary *temp = [NSPropertyListSerialization propertyListWithData:dat options:NSPropertyListImmutable format:&plistFormat error:&error];
NSString* city = [[temp objectForKey:@"Address"] objectForKey:@"City"];
NSString* country = [[temp objectForKey:@"Address"] objectForKey:@"Country"];
NSString* result = [city stringByAppendingFormat:@", %@",country];
NSLog(@"%@",result);
编辑(根据您更新的问题):
您发布的是字典,而不是数组。字典由一组由键值标识的元素组成。数组由一组由索引标识的元素组成。因此,如果数组中的元素是字符串,则必须处理每个字符串的解析。这通常不是最好的方法,因为@FelixKling说,你也应该使用像json,xml等标准格式。