如何将JSON输出作为NSString

时间:2017-06-09 06:25:55

标签: ios objective-c json

在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")

那么我应该如何将其转换为字符串格式。请帮帮我。

4 个答案:

答案 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);

}