2011-01-26 3 views
0

Я ищу способ удалить конверт вокруг моего ответа SOAP. Данные находятся в JSON, но на самом деле не имеют уровней, поэтому, если я могу удалить конверт, я знаю, что могу его разобрать, потому что я помещал данные в json-файл и получил для него синтаксический анализатор. Моя единственная проблема, когда я получаю ответ от сервера, - это конверт, окружающий данные.Newbie IPhone Removing Soap Envelope

Я искал много, но, похоже, не нашел ответа. Любая помощь и образец кода оцениваются!

Это мое мыло ответ

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Body> 
     <AuthenticateUserResponse xmlns="http://tempuri.org/"> 
     <AuthenticateUserResult>{"isValid":true,"isContractor":false,"isExpired":false,"isApproved":true,"userID":"e2be94cb-2e74-4eae-91a9-d874735b8647","userType":"DUMP ","trucks":1}</AuthenticateUserResult> 
     </AuthenticateUserResponse> 
    </s:Body> 
</s:Envelope> 

Я ищу, чтобы вытащить это.

{"isValid":true,"isContractor":false,"isExpired":false,"isApproved":true,"userID":"e2be94cb-2e74-4eae-91a9-d874735b8647","userType":"DUMP ","trucks":1} 

Возможно, я ошибаюсь, но любая помощь очень ценится.

ответ

1

Это может быть или не быть излишним для ваших нужд, но вот как я это делаю.

Получите себя NSXMLParser. Установите его делегат.

В делегатом, обратите внимание на следующие методы:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)characters 

В методе didStartElement, проверьте ELEMENTNAME является AuthenticateUserResult. Если это так, задайте логическое значение isInAuthenticateUserResult = YES;

В методе didEndElement задайте для boolean значение no.

В методе foundCharacters, если логическое значение YES, тогда символы являются вашим JSON.

+0

Спасибо, что сработали. – mike

1

Учитывая, что конверт - это просто XML, вы рассмотрели использование NSXMLParser для простого анализа XML и получения нужного значения? Если вам не нравится писать анализаторы потока, вы также можете проверить что-то вроде TouchXML.

Смежные вопросы