(NSScanner的使用)替换服务器获取的JSON数据中的换行符(JSON是不能解析带有换行符字符串)
2015-03-25 15:11
721 查看
JSON是不能解析带有换行符字符串的,今天被这傻问题碰到了,服务器获取的json字符串数据有换行符,怎么转json都是null。。。
而且有些不能直接用stringByReplacingOccurrencesOfString就能替换。还是用NSScanner好用
+(NSString *)ReplacingNewLineAndWhitespaceCharactersFromJson:(NSString *)dataStr{
NSScanner *scanner = [[NSScanner alloc] initWithString:dataStr];
[scanner setCharactersToBeSkipped:nil];
NSMutableString *result = [[NSMutableString alloc] init];
NSString *temp;
NSCharacterSet*newLineAndWhitespaceCharacters = [ NSCharacterSet newlineCharacterSet];
// 扫描
while (![scanner isAtEnd])
{
temp = nil;
[scanner scanUpToCharactersFromSet:newLineAndWhitespaceCharacters intoString:&temp];
if (temp) [result appendString:temp];
// 替换换行符
if ([scanner scanCharactersFromSet:newLineAndWhitespaceCharacters intoString:NULL]) {
if (result.length > 0 && ![scanner isAtEnd]) // Dont append space to beginning or end of result
[result appendString:@"|"];
}
}
return result;
}
而且有些不能直接用stringByReplacingOccurrencesOfString就能替换。还是用NSScanner好用
+(NSString *)ReplacingNewLineAndWhitespaceCharactersFromJson:(NSString *)dataStr{
NSScanner *scanner = [[NSScanner alloc] initWithString:dataStr];
[scanner setCharactersToBeSkipped:nil];
NSMutableString *result = [[NSMutableString alloc] init];
NSString *temp;
NSCharacterSet*newLineAndWhitespaceCharacters = [ NSCharacterSet newlineCharacterSet];
// 扫描
while (![scanner isAtEnd])
{
temp = nil;
[scanner scanUpToCharactersFromSet:newLineAndWhitespaceCharacters intoString:&temp];
if (temp) [result appendString:temp];
// 替换换行符
if ([scanner scanCharactersFromSet:newLineAndWhitespaceCharacters intoString:NULL]) {
if (result.length > 0 && ![scanner isAtEnd]) // Dont append space to beginning or end of result
[result appendString:@"|"];
}
}
return result;
}
相关文章推荐
- 使用jQuery POST提交数据返回的JSON是字符串不能解析为JSON对象
- 使用所见即所得文本编辑器编辑文本存入数据库后通过ajax获取服务器json_encode的数据到前台,文本内容上边的html标签不解析
- 在使用easyui,datagrid时,JSON中的如果含有换行符,则不能显示数据
- Flex获取服务器JSON数据并解析JSON
- Android获取服务器Json数据与Json的解析
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- Android手机号码归属地的查询(使用聚合数据API,获取JSON数据并解析)
- 使用jQuery解析JSON数据(jquery在前台对从后台获取到的json数据进行解析,并进行显示)
- iOS- JSon和Xml解析,与服务器交互数据的解析详解与使用,各种解析方式详解
- httpResponse的getEntity为空,获取了这个数据在解析的时候出现了String不能转换成json对象
- android解析xml和json数据(获取本地服务器数据)
- 使用JSON数据向服务器提交和获取服务器传递的Json数据
- 使用NSScanner解析分段字符串数据
- 从服务器获取Json数据,并解析
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- 解析JSON对象与字符串之间的相互转换(获取json数据转换为字符串,json传值方法)
- 网络通信框架Volley之二——访问服务器获取Json.xml数据和详细的解析数据
- IOS开发——NSURLConnection服务器获取数据 & JSON数据解析
- 在使用easyui,datagrid时,JSON中的如果含有换行符,则不能显示数据
- 通过HttpClient获取服务器接口json数据已及解析