Как я могу разобрать эту строку, используя NSString? - PullRequest
0 голосов
/ 14 января 2011

У меня есть следующая строка:

callback({"Outcome":"Success", "Message":null, "Identity":"Request", "Delay":0.002, "Symbol":"AAPL", "CompanyName":"Apple Inc.", "Date":"1\/13\/2011", "Time":"4:02:36 PM", "Open":344.6, "Close":345.93, "PreviousClose":344.42, "High":346.63, "Low":343.86, "Last":345.93, "Change":1.51, "PercentChange":0.438, "Volume":785960})

Я хочу, чтобы моя последняя строка не содержала callback( и последний ) в конце строки.Как я могу изменить этот NSString?

Ответы [ 3 ]

3 голосов
/ 14 января 2011

NSScanner хорошо подходит для такого рода вещей.

NSString *json = nil;
NSScanner *scanner = [NSScanner scannerWithString:fullString];
[scanner scanUpToString:@"{" intoString:NULL]; // Scan to where the JSON begins
[scanner scanUpToString:@")" intoString:&json];

NSLog(@"json = %@", json);
2 голосов
/ 14 января 2011

Сделайте из него NSMutableString, называемый string. т.е. NSMutableString *string = [NSMutableString stringWithString:myString];.

Затем выполните string = [string substringToIndex:[string length]-1];, а затем string = [string substringFromIndex:9]; или еще что-нибудь.

Или снова создайте экземпляр NSMutableString с вашим экземпляром NSString и вызовите [string replaceOccurrencesOfString:@"callback(" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [string length])]; и [string replaceOccurrencesOfString:@")" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [string length])];. Это может быть предпочтительным.

В любом случае, затем создайте экземпляр NSString с новой строкой, что-то вроде goodString = [NSString stringWithString:string];, если вам нужен NSString из этого.

1 голос
/ 14 января 2011

Вы не можете изменить NSString (только NSMutableString), но вы можете использовать [string substringWithRange:NSMakeRange(9, [string length] - 10)]. Чтобы фактически изменить NSMutableString, вам нужно использовать два вызова deleteCharactersInRange:, чтобы обрезать ненужные части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...