我想将 Json 值替换为 iOS 中的另一个字符串值
I want to replace Json values to another string values in iOS
使用 Json 我已将一些值检索到 UITableViewCell
NSString *sample = [[array objectAtIndex:indexPath.row] objectForKey:@"food"];
我的示例字符串值中得到 1,2,3,4,6
但我想显示,例如 1=apple 2=grape 3=orange 4=pineapple 5=lemon 6=All
我希望结果在我的示例字符串值中是 apple,grape,orange,pineapple,All
在 Objective-C
中没有可用于 String
类型的内置 enums
。您可以将 enums
声明为 Integer
,然后创建一个函数或一个字符串数组,其中 return 是 enum
.
的字符串值
在您的 .h
文件中声明。
typedef NS_ENUM(NSInteger, FRUIT) {
APPLE = 1,
GRAPE,
ORANGE,
PINEAPPLE,
LEMON,
All
};
extern NSString * const FRUITString[];
在您的 .m
文件中定义。
NSString * const FRUITString[] = {
[APPLE] = @"APPLE",
[GRAPE] = @"GRAPE",
[ORANGE] = @"ORANGE",
[PINEAPPLE] = @"PINEAPPLE",
[LEMON] = @"LEMON",
[All] = @"All"
};
您可以像这样使用它:
NSLog(@"%@", FRUITString[APPLE]);
// OR
NSLog(@"%@", FRUITString[1]);
Output: APPLE
根据您的评论: 如果食物价值是 "food":"1,2" 我想展示 "apple,grape"
NSString *foodValue = @"1,2";
NSArray *values = [foodValue componentsSeparatedByString:@","];
NSMutableArray *stringValues = [[NSMutableArray alloc] init];
for (NSString *value in values) {
[stringValues addObject:FRUITString[[value integerValue]]];
}
NSLog(@"%@", [stringValues componentsJoinedByString:@","]);
APPLE,GRAPE
使用所需的映射定义 NSDictionary,并从映射字典中获取值:
NSDictionary *foodDict = @{
@"1": @"apple",
@"2": @"grape",
@"3": @"orange",
@"4": @"pineapple",
@"5": @"lemon",
@"6": @"all"
};
NSString *sample = [[array objectAtIndex:indexPath.row] objectForKey:@"food"];
NSString *sampleValue= [foodDict valueForKey:sample];
"sampleValue" 是您所需的字符串值。 (如果需要,将其转换为 NSString)
将代码 objectForKey@""" 更改为 valueForKey@""
NSString *sample = [[array objectAtIndex:indexPath.row] valueForKey:@"food"];
使用 Json 我已将一些值检索到 UITableViewCell
NSString *sample = [[array objectAtIndex:indexPath.row] objectForKey:@"food"];
我的示例字符串值中得到 1,2,3,4,6
但我想显示,例如 1=apple 2=grape 3=orange 4=pineapple 5=lemon 6=All
我希望结果在我的示例字符串值中是 apple,grape,orange,pineapple,All
在 Objective-C
中没有可用于 String
类型的内置 enums
。您可以将 enums
声明为 Integer
,然后创建一个函数或一个字符串数组,其中 return 是 enum
.
在您的 .h
文件中声明。
typedef NS_ENUM(NSInteger, FRUIT) {
APPLE = 1,
GRAPE,
ORANGE,
PINEAPPLE,
LEMON,
All
};
extern NSString * const FRUITString[];
在您的 .m
文件中定义。
NSString * const FRUITString[] = {
[APPLE] = @"APPLE",
[GRAPE] = @"GRAPE",
[ORANGE] = @"ORANGE",
[PINEAPPLE] = @"PINEAPPLE",
[LEMON] = @"LEMON",
[All] = @"All"
};
您可以像这样使用它:
NSLog(@"%@", FRUITString[APPLE]);
// OR
NSLog(@"%@", FRUITString[1]);
Output: APPLE
根据您的评论: 如果食物价值是 "food":"1,2" 我想展示 "apple,grape"
NSString *foodValue = @"1,2";
NSArray *values = [foodValue componentsSeparatedByString:@","];
NSMutableArray *stringValues = [[NSMutableArray alloc] init];
for (NSString *value in values) {
[stringValues addObject:FRUITString[[value integerValue]]];
}
NSLog(@"%@", [stringValues componentsJoinedByString:@","]);
APPLE,GRAPE
使用所需的映射定义 NSDictionary,并从映射字典中获取值:
NSDictionary *foodDict = @{
@"1": @"apple",
@"2": @"grape",
@"3": @"orange",
@"4": @"pineapple",
@"5": @"lemon",
@"6": @"all"
};
NSString *sample = [[array objectAtIndex:indexPath.row] objectForKey:@"food"];
NSString *sampleValue= [foodDict valueForKey:sample];
"sampleValue" 是您所需的字符串值。 (如果需要,将其转换为 NSString)
将代码 objectForKey@""" 更改为 valueForKey@""
NSString *sample = [[array objectAtIndex:indexPath.row] valueForKey:@"food"];