替换JSON字符串中的内容

时间:2018-10-28 16:28:33

标签: objective-c json nsjsonserialization

为什么会出现错误:

NSString *jsonString = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"jsonRoster unmasked: %@", jsonString);
NSString *maskedString = [self maskJSON:jsonString withMultipleElementStartString:@"###multipleElementsBegin###" andMultipleEndString:@"###multipleElementsEnd###" andSingleElementStartString:@"###elementBegin###" andSingleElementEndString:@"###elementEnd###"];
NSLog(@"jsonRoster masked: %@", maskedString);

这是错误:

  

由于未捕获的异常而终止应用程序   'NSInvalidArgumentException',原因:'-[__ NSDictionaryI   stringByReplacingOccurrencesOfString:withString:]:无法识别   选择器发送到实例0x600002932400'

但是为什么字符串仍然是字典?

1 个答案:

答案 0 :(得分:2)

根据错误消息JSONObjectWithData返回了一个NSDictionary对象,实际上实际上是这样,JSONObjectWithData根据您的JSON结构返回一个字典或一个数组。因此,通常应检查返回类型并正确处理它。

修改 要获取NSString,可以使用其initWithData:encoding:方法。