在Objective-C中工作,我需要解析JSON。所以解析成功后。
以下是我的代码:
-(instancetype)initWithDict:(NSDictionary *)dict {
self = [super init];
if (self) {
if ([dict isKindOfClass:[NSDictionary class]]) {
self.allKeysArray = [dict allKeys];
if ([self.allKeysArray containsObject:@"nDetail"]) {
if ([dict valueForKey:@"nDetail"]) {
_tempNutrientArray = [[[dict valueForKey:@"nDetail"] valueForKey:@"nTypeCode"] valueForKey:@"value"];
}
}
}
NSLog(@"N Array : @%@", _tempNutrientArray);
}
我需要每个值都以字符串格式转换它。
我的输出:
N Array : @(
"ENER-",
FAT,
FASAT,
CHOAVL,
"SUGAR-",
"PRO-",
NACL
)
必填项:
N Array : @("ENER-","FAT","FASAT","CHOAVL","SUGAR-","PRO-","NACL")
那么我应该如何将其转换为字符串格式。请帮帮我。
答案 0 :(得分:1)
您需要枚举整个数组以使所有对象成为正确的字符串。这可能是快速操作。
您可以使用此代码:
NSArray *arr = [NSArray arrayWithObjects:@"",@"", nil];
NSMutableArray *arrNew = [NSMutableArray new];
[arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSString *plainstr = [NSString stringWithFormat:@"%@",obj];
[arrNew addObject:plainstr];
}];
arrNew将是带字符串的数组..
最好在获取它时将其转换为字符串。
答案 1 :(得分:0)
将数组转换为字符串
NSString * myString = [_tempNutrientArray componentsJoinedByString:@""];
如果您希望字符串中的任何字符在componentsJoinedByString:@"GIVE_IT_HERE"
答案 2 :(得分:0)
在你的情况下,你创建了一个变量,在使用我的代码后,你的响应中存储了整个字符串。
NSString *tempstring = @"ENER- FAT FASAT CHOAVL SUGAR- PRO- NACL";
NSArray *arr = [tempstring componentsSeparatedByString:@" "];
NSLog(@"%@",arr);
NSLog(@"First value : %@",[arr objectAtIndex:0]);
NSLog(@"Second value : %@",[arr objectAtIndex:1]);
NSLog(@"Third value : %@",[arr objectAtIndex:2]);
现在检查arr值你得到了你想要的所有字符串。
输出
(
"ENER-",
FAT,
FASAT,
CHOAVL,
"SUGAR-",
"PRO-",
NACL
)
First value : ENER-
Second value : FAT
Third value : FASAT
答案 3 :(得分:0)
作为您需要的输出,您可以尝试:
-(instancetype)initWithDict:(NSDictionary *)dict {
self = [super init];
if (self) {
if ([dict isKindOfClass:[NSDictionary class]]) {
self.allKeysArray = [dict allKeys];
if ([self.allKeysArray containsObject:@"nDetail"]) {
if ([dict valueForKey:@"nDetail"]) {
_tempNutrientArray = [[[dict valueForKey:@"nDetail"] valueForKey:@"nTypeCode"] valueForKey:@"value"];
}
}
}
NSString *finalString = @"";
[_tempNutrientArray enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSString *plainstr = [NSString stringWithFormat:@"%@",obj];
if (plainstr)
finalString = [finalString stringByAppendingString:plainstr];
}];
NSLog(@"N Array : @%@", finalString);
}