2012-08-27 26 views
5

Ich habe einige String-Werte wie diesem FormatWie konvertiert man NSString als JSON Format in ios5?

[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello] [;] 

ich diese Strings zu JSON mit NSJSONSerialization konvertieren möchten.

ich den folgenden Code verwende die Saiten zu konvertieren,

for (i = 0; i < [logArray count]; i++) 
{ 
    individualLogInfoArray = [[logArray objectAtIndex:i] componentsSeparatedByString:kDelimitterSpace]; 
    [dictionaryArray addObject:individualLogInfoArray]; 

} 

finalLogDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:dictionaryArray,@"Log", nil]; 
    NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:finalLogDictionary 
                options:NSJSONWritingPrettyPrinted 
                error:&error]; 

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
NSLog(@"JsonString = %@",jsonString); 

Dann ich so immer Ausgang,

JsonString = { 
    "Log" : [ 
    "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello] [;]", 
    "[DEBUG] [Tue Aug 21 14:54:22 2012] [ViewController] [27] [hi] [;]", 
    "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [28] [Its there] [;]", 
    "[PROD] [Tue Aug 21 14:54:22 2012] [ViewController] [29] [Welcome] [;]" 
    ] 
} 

, aber ich möchte eine Ausgabe wie diese,

{ 
"log": "[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello],[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello],[INFO] [Tue Aug 21 14:54:22 2012] [ViewController] [26] [Hello]" 

}

Ich weiß nicht, wie man eine JSON-Zeichenfolge im obigen Format generiert, bitte schlagen Sie eine Lösung vor.

Antwort

4

Die Zeichenfolge, die Sie erhalten, ist gültiger JSON, die Zeichenfolge jedoch nicht. Daher können Sie die JSON-Bibliothek von iOS nicht zum Generieren ungültiger JSONs verwenden.

Sie können Gültigkeit testen, indem Sie dieses Online-Dienstprogramm,

JSONLint

Hoffnung, das hilft.

UPDATE: Frage wurde seither überarbeitet, um gültige JSON als erforderliche Ausgabe anzuzeigen.

+0

Vielen Dank für Ihre Antwort –

+0

danke für Ihre Informationen. das ist gültig json, ich weiß nicht, wie man einen jsonString generiert –

+0

machen Sie Ihren eigenen Versuch – Ben10

0

Ihre überarbeitete Frage ist nun ein Fall der Manipulation von NSDictionary-, NSString- und NSArray-Objekten, um das gewünschte Format zu erhalten, bevor es als JSON serialisiert wird.

Sie benötigen Originaldaten in einem Wörterbuch zu manipulieren, ein Schlüssel/Wert-Paar enthält,

log:

... und dann, dass als JSON Serialisierung.

In Ihrer Schleife, in der Sie Objekte für jedes logArray-Objekt hinzufügen, können Sie stattdessen String mit dem erforderlichen Format anhängen.

Verwandte Themen