Как отобразить json в uitextview из NSDictionary

0

Я пытаюсь в течение всего уик-энда получить простые данные из базы данных mysql в Json в мое приложение в приятный UItextview.

это мой php-код:

<?PHP

include("Connection.php");

$query="Select * from Api";

 $result=mysql_query($query,$conn);     

    while ($row1 = mysql_fetch_array($result)){  
    $users[]=$row1;
    }


$body = array();

if (!empty($users))
    $body['users'] = $users;

if (!empty($body))
    echo json_encode ($body);


    include("dbClose.php");     
?>

это мой код Xcode:

    NSURL *url = [NSURL URLWithString:JSON];
    NSLog(@"jsonreturn#########=%@",url);
    NSError *error = nil;
    NSData *jsondata = [NSData dataWithContentsOfURL:url];

    NSDictionary *dic = nil;

    if (!jsondata)
    {
        UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error" message:@"Data not found !!." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        return;
    }

    //  NSLog(@"data %@",data);

    dic = [NSJSONSerialization JSONObjectWithData:jsondata options:0 error:&error];

       [_userEmail removeAllObjects];
       [_userFirst removeAllObjects];


      NSLog(@"Dictionary data %@",dic);



    for (NSDictionary *obj in [dic objectForKey:@"users"]) {

        ;
        [_userEmail addObject:[obj valueForKey:@"Email"]];


    }



   user_mail.text = [NSString stringWithFormat:@"%@", [dic valueForKey: @"Email"]];

это журнал в Xcode, вы можете увидеть здесь электронную почту, так как вы можете видеть, что анализ данных хорош:

Dictionary data {
users =     (
            {
        0 = 1;
        1 = "dani\t";
        10 = "";
        11 = "";
        12 = 0;
        2 = "l\f)\U008f\U00d0\U00b7'\U00fcR\U0092\U00bauU\U00f2]";
        3 = dani;
        4 = dani;
        5 = "";
        6 = "";
        7 = "";
        8 = dani;
        9 = dani;
        Country = "";
        Email = "dani\t";
        "First_Name" = dani;

и это результат UItextview приложения для электронной почты:

(null)

так как вы можете видеть мою проблему, вот как я могу получить значение из NSDictionary, которое будет отображаться в приложении, как текстовое представление. Я не хочу использовать представление таблицы или что-то не такое, как мой код выше, поэтому придерживайтесь этого и любая помощь будет большой, спасибо всем.

Это очень просто, я только что получил свою базу данных и хочу выбрать какой-то код и вернуть этот код в свое приложение в UItextview, любой другой способ сделать это будет здорово, всякий способ работы для меня просто покажет мне, как это сделать, я сошел с ума в течение выходных, ища решение для этого, и ничего просто ничего в Интернете для json и textview !.

  • 0
    ну, согласно вашему выводу журнала, "dic objectForKey: @" users "" пуст
  • 0
    пользователи - это просто тело, посмотрите на код php, я использую json_encode, поэтому тело - это просто users $ body ['users'] = $ users; это не имеет к этому никакого отношения, оно должно быть пустым, важная вещь - это электронная почта, поэтому электронная почта равна = dani, как я могу добавить "dani" в uitextview? О, и, кстати, пользователи не пустые. Я только что скопировал важную часть журнала, но не все, так что пользователи - это просто тело, и оно показывает вам все, что внутри пользователей позволяет сказать, что вы можете изменять пользователей на электронные письма в вашем. ум, чтобы понять меня ... так что у вас есть электронные письма: и вот первое электронное письмо из базы данных "Дани".
Показать ещё 2 комментария
Теги:
xcode

1 ответ

0
Лучший ответ

Если ваш выход из журнала таков:

Dictionary data {
users =     (
        {
    0 = 1;
    1 = "dani\t";
    10 = "";
    11 = "";
    12 = 0;
    2 = "l\f)\U008f\U00d0\U00b7'\U00fcR\U0092\U00bauU\U00f2]";
    3 = dani;
    4 = dani;
    5 = "";
    6 = "";
    7 = "";
    8 = dani;
    9 = dani;
    Country = "";
    Email = "dani\t";
    "First_Name" = dani;
    }
)}

Затем словарь данных содержит словарь с ключевыми "пользователями".

В словаре пользователей есть массив. В журнале "(" equals array "," "равен словарю, для json-строк.

Внутри массива пользователей объект 0 имеет словарь с несколькими ключами (0,1,10,11..Country, Email...)

Поэтому, чтобы поместить значение ключа "Электронная почта" в ярлык, вы можете сделать это:

NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsondata options:0 error:&error];

NSArray *users = [dic objectForKey:@"users"];
NSDictionary  *firstUser = [users objectAtIndex:0];
user_mail.text = [NSString stringWithFormat:@"%@", [firstUser valueForKey: @"Email"]];

Вы можете перебирать массив, чтобы сделать это для всех объектов в массиве "users", или если вы знаете, что хотите первый или последний, вы можете сделать NSDictionary * firstUser = [users firstObject] или NSDictionary * firstUser = [users lastObject],

Надеюсь, это поможет.

  • 0
    Ты удивительный, так быстро, ответ отлично! ты мой бог, спасибо, приятель, очень помог, спасибо, что это сработало как магия. так что мне не хватало всего лишь массива, который будет содержать моих пользователей? и в чем разница между nsarray и nsmutablearray?
  • 0
    Вау, спасибо. Да, и не забудьте пометить его как ответившее, чтобы оно могло помочь другим людям;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню