JSON ma'lumotlariga qanday kirish va uni XCode Logcat-da ko'rsatish va agar javob null bo'lsa, men ogohlantirishni ko'rsatishni xohlayman

Quyida Internetdan ma'lumotlarni oladigan va logcat-da ko'rsatishga harakat qiladigan namuna kodi. Men bu erda pst kodi. Iltimos, buni hal qilishga yordam bering. Oldindan rahmat

NSArray *dicAllNetworks = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

NSLog(@"JsonData=%@",dicAllNetworks);

for (NSDictionary *dict in dicAllNetworks)
{
    NSInteger number = [dict[@"UserID"] intValue];
    NSString *UserTypeConst =dict[@"UserTypeConst"];
    NSString *name = dict[@"UserName"];
}

Bu erda javob:

JsonData=[{"UserID":2478,"UserTypeConst":"PQR","UserName":"115005p"}]

javob null bo'lsa

Men ogohlantirishni ko'rsatishni xohlayman.

3
@Nazir bu savolga allaqachon yozib qo'yilgan
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
Siz xohlagan narsalar uchun loop uchun ma'lumotlarga kirasizmi?
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
@SagarRathod NSLog (@ "JsonData =% @", [[NSString alloc] initWithData: ma'lumotlarni kodlash: NSUTF8StringEncoding]);
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
@SagarRathod NSLog (@ "JsonData =% @", [[NSString alloc] initWithData: ma'lumotlarni kodlash: NSUTF8StringEncoding]);
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
NSArray o'rniga dicAllNetworks NSString degan savolga nima sabab bo'lganini bilmayman
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
Siz ushbu obyektni qanday yaratmoqchisiz?
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
Siz ushbu obyektni qanday yaratmoqchisiz?
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
@Nazir bu savolga allaqachon yozib qo'yilgan
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
ma'lumotlaringiz qanday tuzilgan?
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
@Nazir bu savolga allaqachon yozib qo'yilgan
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
Qaysi nuqtada u bunday xatolikni keltirib chiqaradi, shuningdek, barcha istisnolar jurnalini joylashtiradi
qo'shib qo'ydi muallif Inder Kumar Rathore, manba
@SagarRathod siz bu yerdan o'tmaysizmi NSLog (@ "JsonData =% @", dicAllNetworks)
qo'shib qo'ydi muallif Nazir, manba
@SagarRathod siz bu yerdan o'tmaysizmi NSLog (@ "JsonData =% @", dicAllNetworks)
qo'shib qo'ydi muallif Nazir, manba
@SagarRathod siz bu yerdan o'tmaysizmi NSLog (@ "JsonData =% @", dicAllNetworks)
qo'shib qo'ydi muallif Nazir, manba
Muammo shundaki dicAllNetworks bir Array emas
qo'shib qo'ydi muallif Nazir, manba
Muammo shundaki dicAllNetworks bir Array emas
qo'shib qo'ydi muallif Nazir, manba
Muammo shundaki dicAllNetworks bir Array emas
qo'shib qo'ydi muallif Nazir, manba
countByEnumeratingWithState: moslamalarni: count xatoligini oldim
qo'shib qo'ydi muallif Nazir, manba
countByEnumeratingWithState: moslamalarni: count xatoligini oldim
qo'shib qo'ydi muallif Nazir, manba
countByEnumeratingWithState: moslamalarni: count xatoligini oldim
qo'shib qo'ydi muallif Nazir, manba
Buni boshqa variant bilan sinab ko'ring [NSJSONSerialization JSONObjectWithData: ma'lumotlar imkoniyatlari: kNilOptions xatosi: nil];
qo'shib qo'ydi muallif Nazir, manba
Buni boshqa variant bilan sinab ko'ring [NSJSONSerialization JSONObjectWithData: ma'lumotlar imkoniyatlari: kNilOptions xatosi: nil];
qo'shib qo'ydi muallif Nazir, manba
Buni boshqa variant bilan sinab ko'ring [NSJSONSerialization JSONObjectWithData: ma'lumotlar imkoniyatlari: kNilOptions xatosi: nil];
qo'shib qo'ydi muallif Nazir, manba
Birinchidan, siz ma'lumotlarning turini nazorat qila olsangiz, JsonData = [{"UserID": 2478, "UserTypeConst": "PQR", "Foydalanuvchi nomi": "1 & zwnj; 15005p"}] manba kodini qiling va foydalanuvchi identifikatorini mag'lubiyatga aylantiring. Keyin JSON ma'lumotlaringiz "UserID": "2478" kodini qaytaradi va barchasi bajariladi.
qo'shib qo'ydi muallif Nazir, manba
Ushbu NSLog yordamida (@ "JsonData =% @", [[NSString alloc] initWithData: ma'lumotlarni kodlash: NSUTF8StringEncoding]); Biz ..... JsonData = "[{\" UserID \ ": 24, \" UserTypeConst \ ": \" PAR \ ", \" UserNa & zwnj; men \ ": \" 160005p \ "} Inder qimor
qo'shib qo'ydi muallif Sagar Rathode, manba
2017-03-03 13: 07: 38.507 api [15117: 154818] ma'lumotlar: <225b7b5c 22557365 7249445c 223a3234 2c5c2255 73657254 79706543 6f6e7374 5c223a5c 22504152 5c222c5c 22557365 724e616d 655c223a 5c223136 30303035 705c227d 5d22> @
qo'shib qo'ydi muallif Sagar Rathode, manba
nosozliklarni tuzatuvchiga aylantirganda ... bu menga istisnosiz @ inder sababi bilan ilovani bekor qilish imkonini beradi
qo'shib qo'ydi muallif Sagar Rathode, manba
JsonData = [{"UserID": 2478, "UserTypeConst": "PQR", "Foydalanuvchi nomi": "1 & zwnj; 15005p"}] 2017-03-03 12: 14: 12.460 api [11500: 120541] - [__ NSCFString countByEnumeratingWithState : Ob'ektlar: sonlar:]: taniqli selektor o'rniga yuborilgan 0x60800005dee0 2017-03-03 12: 14: 12.534 api [11500: 120541] *** 'NSInvalidArgumentException' sababsiz bekor qilinadigan ilovani bekor qilish sababi: '- [__ NSCFString countByEnumeratingWithState: ob'ektlar: hisoblash:]: taniqli selektor 0x60800005dee0 ga yuborilgan '
qo'shib qo'ydi muallif Sagar Rathode, manba
@ formatidagi JSON formatida
qo'shib qo'ydi muallif Sagar Rathode, manba
Buni yana sinab ko'rdim .... yana NSException @ inder turidagi istisno bilan tugatish
qo'shib qo'ydi muallif Sagar Rathode, manba
agar sharhlarim bo'lsa, unda NSException @Nazir turidagi istisnosiz ham tugatiladi
qo'shib qo'ydi muallif Sagar Rathode, manba
agar sharhlarim bo'lsa, unda NSException @Nazir turidagi istisnosiz ham tugatiladi
qo'shib qo'ydi muallif Sagar Rathode, manba
2017-03-03 13: 07: 38.507 api [15117: 154818] ma'lumotlar: <225b7b5c 22557365 7249445c 223a3234 2c5c2255 73657254 79706543 6f6e7374 5c223a5c 22504152 5c222c5c 22557365 724e616d 655c223a 5c223136 30303035 705c227d 5d22> @
qo'shib qo'ydi muallif Sagar Rathode, manba
2017-03-03 13: 07: 38.507 api [15117: 154818] ma'lumotlar: <225b7b5c 22557365 7249445c 223a3234 2c5c2255 73657254 79706543 6f6e7374 5c223a5c 22504152 5c222c5c 22557365 724e616d 655c223a 5c223136 30303035 705c227d 5d22> @
qo'shib qo'ydi muallif Sagar Rathode, manba
Ushbu NSLog yordamida (@ "JsonData =% @", [[NSString alloc] initWithData: ma'lumotlarni kodlash: NSUTF8StringEncoding]); Biz ..... JsonData = "[{\" UserID \ ": 24, \" UserTypeConst \ ": \" PAR \ ", \" UserNa & zwnj; men \ ": \" 160005p \ "} Inder qimor
qo'shib qo'ydi muallif Sagar Rathode, manba
JsonData = [{"UserID": 2478, "UserTypeConst": "PQR", "Foydalanuvchi nomi": "1 & zwnj; 15005p"}] @Mazir
qo'shib qo'ydi muallif Sagar Rathode, manba
JsonData = [{"UserID": 2478, "UserTypeConst": "PQR", "Foydalanuvchi nomi": "1 & zwnj; 15005p"}] @Mazir
qo'shib qo'ydi muallif Sagar Rathode, manba
JsonData = [{"UserID": 2478, "UserTypeConst": "PQR", "Foydalanuvchi nomi": "1 & zwnj; 15005p"}] @Mazir
qo'shib qo'ydi muallif Sagar Rathode, manba

6 javoblar

      dispatch_async(dispatch_get_main_queue(), ^{

                                                UIAlertController *alert=[UIAlertController alertControllerWithTitle:@"Please enter valid UserID and Password" message:@"" preferredStyle:UIAlertControllerStyleAlert];

                                                UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action)
                                                                     {
                                                                         [alert dismissViewControllerAnimated:YES completion:nil];
                                                                     }];

                                                [alert addAction:ok];
                                                [self presentViewController:alert animated:YES completion:nil];

                                                NSLog(@"Invalide Login Credential.");


                                            });
1
qo'shib qo'ydi

Muammo sizning ma'lumotlaringiz sizning kodingizga qarang va izohlarni o'qing

//This is your actual string
// Code 1
// NSString *jstr = @"\"[{\\\"UserID\\\":24,\\\"UserTypeConst\\\":\\\"PAR\\\",\\\"UserNa‌​me\\\":\\\"160005p\\\"}]\"";

// where as your string be like this
// Code 2
NSString *jstr = @"[{\"UserID\":2478,\"UserTypeConst\":\"PQR\",\"UserName\":\"115005p\"}]";
NSData *data = [jstr dataUsingEncoding:NSUTF8StringEncoding];



NSArray *dicAllNetworks = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

NSLog(@"JsonData=%@",dicAllNetworks);

for (NSDictionary *dict in dicAllNetworks)
{
  NSInteger number = [dict[@"UserID"] intValue];
  NSString *UserTypeConst =dict[@"UserTypeConst"];
  NSString *name = dict[@"UserName"];
}

Faqat yuqoridagi namunani ishga tushiring, u yaxshi ishlaydi, lekin siz Code 2 va kodi Kod 1 ni izohlashda muammoingizni hal qilasiz. Foydalanuvchining profili data </​​code> ob'ektini qanday yaratganingizni bilmayman, lekin bu haqiqiy json emas.


Mavjud kodingizda faqat quyidagi kodni o'zgartiring

NSError *error = nil;
NSArray *dicAllNetworks = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"eror=%@", error);

Sizning jsoning noto'g'ri ekanligini ko'rishingiz mumkin

0
qo'shib qo'ydi
Xayr-e-javob @ agar javobni null bo'lsa va men ogohlantirishni namoyish qilmoqchi bo'lsam ...
qo'shib qo'ydi muallif Sagar Rathode, manba
Xayrli ishga kirishganimdan minnatdorman, bu 5 soatni echishga harakat qilaman, shukur qilsam @ inder kumar rathore
qo'shib qo'ydi muallif Sagar Rathode, manba

Buni ko'ring

for (NSDictionary *dict in dicAllNetworks)
{
    NSNumber *number = [NSNumber numberWithInt:dict[@"UserID"]];
    NSString *UserTypeConst =dict[@"UserTypeConst"];
    NSString *name = dict[@"UserName"];
}
0
qo'shib qo'ydi
Yangilangan tekshiruvni tekshirib ko'ring NSNumber * Number = [NSNumber numberWithInt: dict [@ "UserID"]]];
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
xatni sharhga qo'shing
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
Men bunday xatoga yo'l qo'ymayman
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
@ jignesh kodingizda talab qilinadigan identifikatorni xato bilan ta'minlang
qo'shib qo'ydi muallif Sagar Rathode, manba
NSException turidagi istisnolarsiz bekor qilish. Xatolikka oid xabar: Signal tufayli to'xtagan
qo'shib qo'ydi muallif Sagar Rathode, manba
NSNumber * number = [dict [@ "UserID"]]]; kvadrat qavsning birinchi marta yopilgandan keyin qizil belgini ko'rsatadi
qo'shib qo'ydi muallif Sagar Rathode, manba
@jignesh xatosini ko'rsatish
qo'shib qo'ydi muallif Sagar Rathode, manba

Buni ko'ring

for (NSDictionary *dict in dicAllNetworks)
{
    NSNumber *number = [NSNumber numberWithInt:dict[@"UserID"]];
    NSString *UserTypeConst =dict[@"UserTypeConst"];
    NSString *name = dict[@"UserName"];
}
0
qo'shib qo'ydi
Yangilangan tekshiruvni tekshirib ko'ring NSNumber * Number = [NSNumber numberWithInt: dict [@ "UserID"]]];
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
xatni sharhga qo'shing
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
Men bunday xatoga yo'l qo'ymayman
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
@ jignesh kodingizda talab qilinadigan identifikatorni xato bilan ta'minlang
qo'shib qo'ydi muallif Sagar Rathode, manba
NSNumber * number = [dict [@ "UserID"]]]; kvadrat qavsning birinchi marta yopilgandan keyin qizil belgini ko'rsatadi
qo'shib qo'ydi muallif Sagar Rathode, manba
NSException turidagi istisnolarsiz bekor qilish. Xatolikka oid xabar: Signal tufayli to'xtagan
qo'shib qo'ydi muallif Sagar Rathode, manba
@jignesh xatosini ko'rsatish
qo'shib qo'ydi muallif Sagar Rathode, manba

Buni ko'ring

for (NSDictionary *dict in dicAllNetworks)
{
    NSNumber *number = [NSNumber numberWithInt:dict[@"UserID"]];
    NSString *UserTypeConst =dict[@"UserTypeConst"];
    NSString *name = dict[@"UserName"];
}
0
qo'shib qo'ydi
Yangilangan tekshiruvni tekshirib ko'ring NSNumber * Number = [NSNumber numberWithInt: dict [@ "UserID"]]];
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
xatni sharhga qo'shing
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
Men bunday xatoga yo'l qo'ymayman
qo'shib qo'ydi muallif jignesh Vadadoriya, manba
@ jignesh kodingizda talab qilinadigan identifikatorni xato bilan ta'minlang
qo'shib qo'ydi muallif Sagar Rathode, manba
NSNumber * number = [dict [@ "UserID"]]]; kvadrat qavsning birinchi marta yopilgandan keyin qizil belgini ko'rsatadi
qo'shib qo'ydi muallif Sagar Rathode, manba
NSException turidagi istisnolarsiz bekor qilish. Xatolikka oid xabar: Signal tufayli to'xtagan
qo'shib qo'ydi muallif Sagar Rathode, manba
@jignesh xatosini ko'rsatish
qo'shib qo'ydi muallif Sagar Rathode, manba

Buni ko'ring: -

for (NSDictionary *dict in dicAllNetworks){
    NSInteger number = [[dict valueForKey:@"UserID"] integerValue];
    NSString *UserTypeConst =[dict valueForKey:@"UserTypeConst"];
    NSString *name = [dict valueForKey:@"userName"];
}
0
qo'shib qo'ydi
libc ++ abi.dylib: NSException turidagi istisnosiz istisno bilan tugatish. Xatolikka oid xabar: Signali sababli tugatilgan
qo'shib qo'ydi muallif Sagar Rathode, manba
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb