我想将 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"];