La conversione di Oggetto Json con la Stringa – Obiettivo C

Immaginare che faccio una richiesta al mio api che restituiscono un mysql_query("Select * from user where id=1").

Dopo che la richiesta è fatta, si restituisce all’utente informazioni in json.
Faccio un po ‘ di debuggin della vostra applicazione, NSlog(@"JSON : %@",json); e mi dà questo:

JSON : (
    {
    aboutme = "";
    active = 0;
    birthday = "1992-10-14";
    "city_id" = 0;
    email = "[email protected]";
    fbid = "";
    firstname = test;
    gender = 1;
    id = 162;
    lastname = test;
    password = "$2a$12$8iy.sGr.4V/Ea3GfHZe0m.SLDrvoSj3/wYRlWsNce1yyCMeCbDrMC";
    "phone_number" = "";
    "recovery_date" = "0000-00-00 00:00:00";
    "register_date" = "2013-06-06 02:44:20";
    salt = "8iy.sGr.4V/Ea3GfHZe0m";
    "user_type_id" = 1;
    username = test;
}
)

Ora ho analizzarlo con AFJONDecode e quando ho la [json valueForKey:@"username"]; e debug ( NSlog(@"username = %@",[json [email protected]"username"]); ) e ottengo questo:

username = (
    testeteste739
)

È per me un oggetto ( perché in Json, la username = test e non username = “test”).

Così, come posso convertire questo oggetto stringa?

** AGGIORNAMENTO **

Posso risolvere dal seguente modo:

NSArray *username = [JSON valueForKey:@"username"];
username = [username objectAtIndex:0];

C’è un modo migliore per superare questo?
Grazie

Il valore di username è un NSString con un valore di @"test". Solo perché non registro con le citazioni non significa che non sia una stringa.
Io non la penso così, perché se faccio NSlog(@”username = — % @ –” username) ottengo: username = --( testeteste1009 )--
Prima di tutto, quello che hai non è una stringa JSON. Si tratta di un dump di NSDictionary e NSArray oggetti, che rappresentano il interalized forma di JSON. In altre parole, è già “analizzate”.
Quello che hai c’è un NSArray (a quanto pare denominato “json”) che contiene un singolo elemento di un array, che è un NSDictionary. Per ottenere, ad esempio, il nome utente devi prima estrarre l’elemento zero di json (NSDictionary* dict = [json objectAtIndex:0]) e quindi estrarre la corretta elemento di matrice (NSString* username = [dict objectForKey:@"username"];).
E nota che, dal momento che il suddetto è un Obiettivo-C oggetto dump, e non JSON, stringa di valori che non hanno spazi o caratteri speciali vengono visualizzati senza racchiudere tra virgolette.

OriginaleL’autore Tiago Almeida | 2013-06-06

One Reply
  1. 22

    Come JSON è un oggetto dictionary, così è possibile ottenere i vostri dati json per JSONDic NSDictionary variabile e di analizzare la stringa come segue:-

    NSDictionary *JSONDic=[[NSDictionary alloc] init];
    NSError *error;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:JSONDic
                                                       options:NSJSONWritingPrettyPrinted 
                                                         error:&error];
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    Che è, naturalmente, il modo per creare una stringa JSON, data una rappresentazione interna NSArray/NSDictionary oggetti. (Speriamo che il tuo JSONDict oggetto è contenuto in realtà quando si esegue questa operazione.) Penso che l’OP sta ancora lottando per ottenere i valori di JSON.
    Come titolo della domanda specifica, egli desidera convertire in stringa JSON per questo l’ho fatto io , lui non specificare nel titolo che si desidera che i valori di JSON.
    Lui non sa cosa vuole.
    yeah !.. Io la penso così?
    Tutto quello che volevo era quello di ottenere il valore di “nome utente”. Ho già risolto, grazie a tutti e scusate per tutte le mie confusione!!!

    OriginaleL’autore Warewolf

Lascia un commento