NSURLConnection connectionDidFinishLoadingから次のエラーが表示されます
「操作を完了できませんでした。(ココアエラー3840。)」(JSONテキストは配列またはオブジェクトで開始せず、フラグメントを設定できないオプションがあります。)UserInfo = 0x7b71dbb0 {NSDebugDescription = JSONテキストは配列またはオブジェクトで開始しませんでした。設定されていないフラグメントを許可するオプション。}
私は次のコードを使用しました:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSError *error;
id json = [NSJSONSerialization JSONObjectWithData:_urlData options:kNilOptions error:&error];
if (error) {
NSLog(@"Loading Error = %@",error);
}
}
以下は私のjson応答です:
{
"result":"success",
"details":[
{
"id":"11531",
"user_name":"",
"fullname":"aa",
"email_address":"aa",
"user_type":"a",
"server":"",
"server_email":"",
"server_password":"",
"password":"0cc175b9c0f1b6a831c399e269772661",
"clean_password":"a",
"gender":"",
"ceo_name":"",
"ceo_picture":"",
"ceo_contact":"",
"ceo_contact_pic":"",
"company_name":"a",
"freight_company_name":"",
"freight_company_email":"",
"company_url":"11531",
"company_keyword":"",
"company_description":"",
"address":"",
"province":"",
"postal_code":"",
"phone_number":"",
"fax_number":"",
"website":"",
"city":"",
"b_category":"",
"main_products":"",
"cellphone":"a",
"country":"0",
"states":"",
"company_status":"1",
"joindate":"0",
"varificationcode":"",
"activation_status":"1",
"new_email":"",
"email_activation_status":"",
"facebook_url":"",
"Twitter_url":"",
"company_update_status":"0",
"last_access_date":"0000-00-00",
"ip_address":"",
"ip_block":"0",
"user_id":null,
"company_id":null,
"video_url":"",
"oauth_uid":"",
"oauth_provider":"",
"get_color":"",
"comp_name_size":"13",
"member_type":"",
"mark_status":"1",
"ip_address_intension":"",
"fbId":"",
"twitterId":"",
"profile_picture":"",
"device_token":""
}
]
}
私はstackOverflowですべてのソリューションを試しましたが、静脈で。
オプション値をNSJSONReadingAllowFragments
ではなくkNilOptions
に設定しますJSONをローカルファイルで取得してテストしました
id json = [NSJSONSerialization JSONObjectWithData:contentOfLocalFile
options:NSJSONReadingAllowFragments
error:&deserializingError];
NSLogは文字列ではなく、取得している実際のデータを記録し、最初のバイトを確認します。 JSONSerializerは最初の文字として{または[を見つけられなかったので、おそらくいくつかのゼロバイト、バイトオーダーマーク、またはそのような他の不可視文字があります。
ジャンメンジャヤの答えに加えて、私は追加したいと思います-
さまざまなAPIでこの問題に2回直面しました。私が持っていたたびに問題があった
これらのケースも確認してください。