0

私はJSON解析が初めてです。私は SBJson 3.1 を使用しており、上記のエラーに応答してデータを取得しようとしています。私はGoogleでたくさん検索しましたが、実際にエラーが何を意味するのかを尋ねたり説明したりした人は誰もいませんIllegal Start of Token。誰か私にこれを説明してもらえますか?このエラーをデバッグするにはどうすればよいですか?

これまでに書いたコードは次のとおりです。

-(IBAction) Start:(id)sender
{
responseData = [[NSMutableData data] retain];

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URL]];

    [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

-(void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[responseData setLength:0];
}

-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[responseData appendData:data];
}

-(void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
label.text = [NSString stringWithFormat:@"Connection failed: %@", [error description]];

[connection release];
responseData = nil;
}

-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
[connection release];

NSString *responseString = [[NSString alloc]  initWithData:responseData encoding:NSUTF8StringEncoding];

[responseData release];

NSDictionary *dict = [responseString JSONValue];

}
4

1 に答える 1

1

まず第一に:

#define URL @"http://xyz...."

そしてそれを次のように使用すると、

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URL]];

私はそれを次の場所にコピーしました:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:http://xyz....]];

2 つ目の問題は、Web サービスを介して返される json 文字列が正しくないことでした。応答データを印刷すると、次のようになりました。

<3c68746d 6c3e0a20 2020203c 68656164 3e0a2020 20203c2f 68656164 3e0a2020 20203c62 6f64793e 0a5b7b22 55736572 4964223a 2231222c 22557365 724e616d 65223a22 4d616861 20497a68.....>

このリンクは、「トークンの不正な開始」が何を意味するのかを理解するのに大いに役立ちました。

Web サービスでは、次のように記述されています。

<html><head></head><body>[
{
    "UserId": "1", .....

発生したエラーは次のとおりです。

Parse error on line 1: <html><head></head>< ^ Expecting '{', '['

于 2012-09-02T23:29:32.680 に答える