iPhone, ошибка SBJSON - PullRequest
       4

iPhone, ошибка SBJSON

0 голосов
/ 27 мая 2011

Я использую SBJson Parser этот

У меня есть это значение JSON, это действительный JSON, но все равно я получаю эту ошибку

-JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Unrecognised leading character\" UserInfo=0x63726a0 {NSLocalizedDescription=Unrecognised leading character}"


{
"Account": {
    "LoginName": "My Name",
    "Name": "My Name"
},
"UseInvoiceAddressAsDeliveryAddress": "true",
"InvoiceAddress": {
    "Zip": "16444",
    "CountryId": "1",
    "City": "SSSS",
    "Line2": "8",
    "Line1": "Street 4"
},
"Phone": "12345678",
"FirstName": "My",
"LastName": "Name",
"Email": "sample@example.com",
"CellPhone": "234254233"
}

Вот мой код, я думаю, что получаю эту ошибку JSON, потому что я не указываю какой-либо тип контента, я делаю это, но все равно он не работает

    SBJsonWriter *writer = [[SBJsonWriter alloc] init];
NSString *jsonConvertedObj = [writer stringWithObject:customerObject];
NSLog(@"The converted JSON String .... %@",jsonConvertedObj);
NSData *postData = [jsonConvertedObj dataUsingEncoding:NSASCIIStringEncoding];  
NSMutableData *myMutablePostData = [NSMutableData dataWithData:postData];

    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:myURL];
[request setRequestMethod:@"POST"];
[request setClientCertificateIdentity:identity];
[request setValidatesSecureCertificate:NO];
[request addData:myMutablePostData withFileName:@"" andContentType:@"application/json" forKey:@""];
[request startSynchronous];

И это ошибка, которую я получаюс сервера:

The server encountered an error processing the request. The exception message is 'The     incoming message has an unexpected message format 'Raw'. The expected message formats for the operation are 'Xml'; 'Json'. This can be because a WebContentTypeMapper has not been configured on the binding.

Ответы [ 3 ]

1 голос
/ 29 мая 2011

Я решил это сам, вот что решил ...

    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:myURL];
[request setPostBody:myMutablePostData];
[request setRequestMethod:@"POST"];
[request setClientCertificateIdentity:identity];
[request setValidatesSecureCertificate:NO];
[request addRequestHeader:@"Content-Type" value:@"application/json"];
[request setDelegate:self];
[request startSynchronous];

Как и предполагалось, я использовал неправильный тип HTTPRequest, а затем я не настраивал тип содержимого.1004 *

0 голосов
/ 27 мая 2011

Из того, что вы вставили, похоже, что есть несколько символов новой строки, прежде чем ваш JSON запустится. Если это действительно так, возможно, вы получаете эту ошибку.

0 голосов
/ 27 мая 2011

Ну, я думаю, возможно, у вас есть какой-то невидимый нелегальный персонаж.Также возможно, что это ошибка в используемой вами библиотеке.Поэтому я предлагаю вам попробовать разобрать его с другой библиотекой.Если что-то не так с JSON, вы должны получить похожую ошибку с другой библиотекой.Если другая библиотека анализирует ваш JSON без проблем, вам, вероятно, следует подать отчет об ошибке для SBJSON.

Я использую JSONKit , и он всегда отлично работал для меня, и его действительно легко использовать.*

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