2 Stimmen

Obj-C: Konvertierung eines Arrays von Objekten in ein NSDictionary zur Verwendung mit JSONRepresentation

Ich habe ein NSMutableArray von benutzerdefinierten Objekten mit verschiedenen Informationen sie. Zum Beispiel könnte das Objekt enthalten:

firstname
lastname
email

Ich möchte diese Objekte zu einem NSDictionary hinzufügen können, so dass ich die Funktion "JSONRepresentation" von SBJSON aufrufen kann, und das endgültige JSON-Format würde wie folgt aussehen:

{
    "Users" : [
               { "user1First" : "FirstName",
                 "user1Last"  : "LastName",
                 "user1Email" : "Email" },
               { "user2First" : "FirstName",
                 "user2Last"  : "LastName",
                 "user2Email" : "Email" },
               { "user3First" : "FirstName",
                 "user3Last"  : "LastName",
                 "user3Email" : "Email" }
               ]
}

0 Stimmen

Ich denke, Sie sollten diese Frage etwas genauer erläutern. Versuchen Sie, eine Reihe von Benutzern mit denselben Werten wie "Vorname" usw. zu erstellen? Ich verstehe das nicht gut genug, um Ihnen zu helfen.

0 Stimmen

"Vorname", "Nachname" und "E-Mail" sind die Schlüssel für die JSON-Werte.

3voto

adamrothman Punkte 956

Schreiben Sie eine dictionaryRepresentation für jede Ihrer benutzerdefinierten Klassen, die ein Wörterbuch für dieses bestimmte Objekt zurückgibt. Dann können Sie etwas wie dies tun:

NSMutableArray *dictionaryArray = [NSMutableArray arrayWithCapacity:yourOtherArray.count];
for (id object in yourOtherArray) {
    [dictionaryArray addObject:[object dictionaryRepresentation]];
}
// not sure what SBJSON's function returns so I'm using id here
id JSONRepresentation = [dictionaryArray JSONRepresentation];

0 Stimmen

Anstelle von NSObject *object würde ich verwenden id object . Dadurch wird eine Warnung verhindert.

0 Stimmen

Eine gute Idee. Geändert um zu reflektieren.

0 Stimmen

dictionaryRepresentation iOS6 und höher

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X