sto generando testo JSON e durante la generazione di allineamento ho un sacco di backslash non ho bisogno:Rimuovere backslash ('') in Objective-C
[\n
{\n
\"Speed\" : 2,\n
\"Direction\" : 3,\n
\"OdometerDelta\" : 4,\n
\"Longitude\" : 0,\n
\"Latitude\" : 1,\n
\"TimeStamp\" : \"1996-06-17\"\n
},\n
{\n
\"Speed\" : 2,\n
\"Direction\" : 3,\n
\"OdometerDelta\" : 4,\n
\"Longitude\" : 0,\n
\"Latitude\" : 1,\n
\"TimeStamp\" : \"1996-06-17\"\n },\n
{\n
\"Speed\" : 2,\n
\"Direction\" : 3,\n
\"OdometerDelta\" : 4,\n
\"Longitude\" : 0,\n
\"Latitude\" : 1,\n
\"TimeStamp\" : \"1996-06-17\"\n
}\n
]
Ecco come ho la mia JSON generato NSString testo:
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
Ecco la parte dove le cose si fanno interessanti, se uso
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
tutti i "\ n" viene rimosso (backsla sh viene rimosso anche), ma se uso
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\\" withString:@""];
tutte le barre retroverse sono ancora lì. Sono abbastanza nuovo all'obiettivo-c quindi non posso nemmeno pensare al possibile modo per cui questo accade, ho provato diversi modi, e nessuno di questi ha funzionato. Il mio colpo al buio è che il problema è causato dalla codifica, ma potrei sbagliarmi.
Ecco come produco il mio file JSON:
for(int i = 0; i < 3; i++)
{
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:0.0], @"Longitude",
[NSNumber numberWithDouble:1.0], @"Latitude",
@"1996-06-17", @"TimeStamp",
[NSNumber numberWithDouble:2.0], @"Speed",
[NSNumber numberWithDouble:3.0], @"Direction",
[NSNumber numberWithDouble:4.0], @"OdometerDelta",
nil];
[arr addObject:jsonDictionary];
}
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
Grazie in anticipo.
È importante sapere che cosa ha prodotto l'output JSON che hai postato. Ad esempio potrebbe essere qualcosa che sta aggiungendo l'escape per te, al fine di rendere visibili le newline. Quindi per favore specifica come hai ottenuto quell'output. – trojanfoe
Il tuo problema è che apparentemente "serializzi" il JSON due volte. Risolvilo, piuttosto che cercare di disfare le cose dopo l'atto. –
@trojanfoe Ho appena aggiunto il codice su come produco il mio JSON. – MisterMortal