Как удалить символы новой строки из NSString в ответе веб-службы? - PullRequest
0 голосов
/ 14 марта 2012

В настоящее время я получаю ответ Webservice, который содержит много символов новой строки. Я испробовал следующие подходы, но все еще не могу удалить символы новой строки.

1)

responseString = [responseString stringByReplacingOccurrencesOfString:@"\n" withString:@""];

2)

responseString = [responseString stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];

3)

NSRange foundRange = [responseString rangeOfString:@"\n"];
    if (foundRange.location != NSNotFound)
        [responseString stringByReplacingOccurrencesOfString:@"\n"
                                            withString:@""
                                               options:0 
                                                 range:foundRange];

Мой ответ Webservice в этом формате.

META NAME="ColdFusionMXEdition" CONTENT="ColdFusion DevNet Edition - Not for Production Use."?      


    wddxPacket version='1.0'><header/><data><string>{"MESSAGE":"","CODE":1,"RESPONSE":{"FILENAME":"CustomerSkillsIntro","PLAYLIST":[{"TIMEOUT":73,"TITLE":"Greet","QUESTIONNUMBER":1,"TIMEIN":71,"VALIDRESPONSE":1},{"TIMEOUT":77,"TITLE":"Have Name Tag","QUESTIONNUMBER":2,"TIMEIN":74,"VALIDRESPONSE":1},{"TIMEOUT":83,"TITLE":"Greet","QUESTIONNUMBER":3,"TIMEIN":78,"VALIDRESPONSE":1},{"TIMEOUT":112,"TITLE":"Helping Do My Job","QUESTIONNUMBER":4,"TIMEIN":109,"VALIDRESPONSE":1},{"TIMEOUT":134,"TITLE":"Greet Happily","QUESTIONNUMBER":5,"TIMEIN":131,"VALIDRESPONSE":1},{"TIMEOUT":144,"TITLE":"Stay cheerful when resident is crabby","QUESTIONNUMBER":6,"TIMEIN":141,"VALIDRESPONSE":1},{"TIMEOUT":154,"TITLE":"Bond with the new resident","QUESTIONNUMBER":7,"TIMEIN":151,"VALIDRESPONSE":1},...................

Мое требование - захватить только часть строки от {"MESSAGE":"","CODE":1, до конца. Но я получаю слишком много пробелов и символов новой строки перед необходимой частью.

1 Ответ

1 голос
/ 15 марта 2012

Похоже, что вы могли бы упростить вашу проблему, взяв строку от первого вхождения '{' до последнего вхождения '}'.

Код ниже обеспечивает желаемый результат с другим подходом. Зачем проходить процесс удаления пробелов, если вы говорите, что вам нужна только часть «от {"MESSAGE":"","CODE":1, до конца».

NSRange start = [responseString rangeOfString:@"{"];
NSRange end = [responseString rangeOfString:@"}" options:NSBackwardsSearch];
NSString *result = nil;

if ((start.location != NSNotFound)&&(start.location != NSNotFound))
{
    NSRange resultRange = NSMakeRange(start.location,end.location - start.location + 1);
    result = [responseString substringWithRange: resultRange];
    NSLog (@"returning with result: %@", result);
}
else 
{
    NSLog (@"abort mission");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...