我的webservice返回带有新行的json字符串,因此它会导致responseString始终为null的问题。
NSString *responseString=[[NSString alloc] initWithData:kampanyadata encoding:NSUTF8StringEncoding];
NSLog(@"%@",[NSString stringWithFormat:@"responsestring:%@",responseString]);
---- responsestring:空
如何替换JSON String中的新行字符?
答案 0 :(得分:0)
NSString *tempString = [tempString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];
我认为你需要这样做:)
答案 1 :(得分:0)
你确定kampanyadata不是null吗?如果它不为null,请尝试使用NSASCIIStringEncoding
,如下所示:
NSString *responseString=[[NSString alloc] initWithData:kampanyadata encoding:NSASCIIStringEncoding];.
Offtopic
顺便说一下,NSLog();
方法已将NSString格式化为参数,因此您可以使用:
NSLog(@"responsestring:%@",responseString);
答案 2 :(得分:0)
soapResults = [[NSString alloc]
initWithBytes: [webData mutableBytes]
length:[webData length]
encoding:NSUTF8StringEncoding];
试试这个对我来说很好用
答案 3 :(得分:0)
你有一些NSData,你试图将它转换为NSString。此时没有涉及JSON。任何错误都与JSON或换行符没有任何关系。可能性:1。您收到的NSData是零。 2.您收到的NSData不是UTF-8格式。
您的NSLog声明非常有趣。查看NSLog的定义 - 第一个参数是格式字符串。而不是
NSLog(@"%@",[NSString stringWithFormat:@"responsestring:%@",responseString]);
你应该写
NSLog (@"responseString:%@", responseString);
您可以将JSON文档直接传递给到NSJSONSerializer。无需将其转换为NSString。实际上,如果数据量很大,只会浪费宝贵的内存。