码迷,mamicode.com
首页 > 其他好文 > 详细

使用ASI过程中遇到的一些问题

时间:2015-01-14 12:34:20      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

最近在使用 ASIHTTPRequest 的过程遇到一个问题,ASI 将 返回的 data 转换成了string,然后就在 dic 前面多了一些字符,导致 string 成了一个不是有效的 json 串。

// Call this method to get the received data as an NSString. Don‘t use for binary data!
- (NSString *)responseString
{
    NSData *data = [self responseData];
    if (!data) {
        return nil;
    }
    return [[[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:[self responseEncoding]] autorelease];
}

 如果直接调用 NSData *data = [self responseData]; 是没有错的,一旦调用 - (NSString *)responseString 就回出现这种情况

技术分享

为此呢,不得已又写了一个方法将多余的字符删除掉...

 1 - (NSString *)jsonStringProcessingWithString:(NSString *)jsonString{
 2     NSString *resultJsonString = @"";
 3     
 4     int head = 0;
 5     int trail = jsonString.length;
 6     
 7     for (int i=0; i<jsonString.length; i++) {
 8         unichar ch = [jsonString characterAtIndex:i];
 9         if (ch == 0x007B) {
10             head = i;
11             break;
12         }
13     }
14     for (int i=jsonString.length-1; i>0; i--) {
15         unichar ch = [jsonString characterAtIndex:i];
16         if (ch == 0x007D) {
17             trail = i;
18             break;
19         }
20     }
21     
22     NSRange range = NSMakeRange(head, trail-head+1);
23     resultJsonString = [jsonString substringWithRange:range];
24     
25     return resultJsonString;
26 }

然后就木有问题了...

 

使用ASI过程中遇到的一些问题

标签:

原文地址:http://www.cnblogs.com/chenjungang/p/4223572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!