c# serializzazione - JSOn oggetto non deserializing correttamente nel lato webservice wcf




1 Answers

Bene, direi che TomSwift è sulla strada giusta ... È evidente che il JSON rotto è semplicemente mancante "} dalla fine della stringa, che in effetti assomiglia a qualcosa che viene disinfettato da un'espressione regolare ... Dovresti davvero trova la fonte del problema, ma per una soluzione rapida e sporca mentre lo capisci , puoi semplicemente eseguire la tua espressione regolare sul JSON che ricevi e se non termina con un "}, aggiungilo ... Prima fai qualcosa come: '/ "[0-9] + $ /' (per verificare se c'è una stringa numerica aperta alla fine, se c'è, la chiudi aggiungendo") quindi controlla se '/} $ / '(se} è l'ultimo carattere, se non lo è: aggiungilo).

Ricorda, quanto sopra sarebbe solo una soluzione temporanea (in quanto è un po 'pesante e non proprio così carina), ma potrei immaginare di essere costretto a fare qualcosa di simile, semplicemente a causa di vincoli di tempo. Se il problema proviene effettivamente dall'API, puoi comunicarlo ai creator e utilizzare qualcosa di simile alla soluzione sopra mentre lo risolvono.

PS. Se qualcuno sceglie di usare una correzione come sopra, per favore, per favore, per amore di tutto ciò che santifichi, lascia un commento nel codice spiegando perché l'hai fatto (al contrario di dirci cosa hai fatto ...) .

deserializzare microsoft

Sto lavorando su un progetto iOS e inviando la stringa Json per eseguire il back-end tramite wcf webservice, funziona con successo per molti utenti ma per alcuni utenti ha il backend che ottiene una stringa json incompleta.

Codice per la generazione della stringa Json

NSData *data = [NSJSONSerialization dataWithJSONObject:EmployeeDetails options:0 error:nil];
    NSString *JsonString = [[NSString alloc] initWithData:data
                                                 encoding:NSUTF8StringEncoding];

E allegando la stringa json con richiesta dal seguente codice

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];

EmployeeDetails è NSMutableDictionary con i dettagli dei dipendenti.

E

Ecco la stringa JSON di successo deserializzata da BackEnd

{"FirstName":"Donald","LastCBPaymentType":6,"AcceptEmail":true,"CellPhone":"321-300-6874","Position":"3","CarrierNum":"4","EmpNum":"96874"}

E stringa incompleta Json

{"FirstName":"roset","LastCBPaymentType":6,"AcceptEmail":true,"CellPhone":"321-300-6874","Position":"3","CarrierNum":"4","EmpNum":"98799

La stringa json incompleta che si verifica nel backend per alcuni utenti.

Qualcuno può aiutare a risolvere questo problema?




Related

c# ios json web-services wcf