2017-06-20 3 views
0

Ich habe ein JSON-Dokument von Benutzern, wo sie eine ID #, Telefonnummer und E-Mail haben. Nach der Eingabe einer anderen ID, Telefon und E-Mail möchte ich die Informationen eines neuen Benutzers aufnehmen und an die Datei anhängen. Ich habe eine Struktur, die nur ein {ID: #, Telefon: #, E-Mail: #} enthält und das funktioniert gut. Aber meine JSON-Datei wird als solche:JSON-Struktur an JSON-Datei anhängen Golang

[{"ID":"ABCD","Phone":1234567890,"Email":"[email protected]"}] 
[{"ID":"EFGH","Phone":1234567890,"Email":"[email protected]"}] 
[{"ID":"IJKL","Phone":1234567890,"Email":"[email protected]"}] 
[{"ID":"MNOP","Phone":1234567890,"Email":"[email protected]"}] 
[{"ID":"QRST","Phone":1234567890,"Email":"[email protected]"}] 
[{"ID":"UVWX","Phone":1234567890,"Email":"[email protected]"}] 

So kann ich an das Dokument angehängt werden, aber es ist eine neue JSON-Struktur durch Klammern []. Unten ist mein Code. Ich habe die tatsächliche Hash-ID weggelassen.

Dies kann von Nutzen sein, hier ist meine Identifikation struct.

type Identification []struct { ID string Phone int64
Email string }

Im Grunde möchte ich die außerhalb Klammern, und innerhalb dieser Klammern möchte ich mehrere Benutzer anhängen. Etwas wie folgt aus:

[ 
    {"id":"A", "phone":17145555555, "email":"[email protected]"}, 
    {"id":"B","phone":15555555555,"email":"[email protected]"}, 
    {"id":"C","phone":14155555555,"email":"[email protected]"}, 
    {"id":"D","phone":17135555555,"email":"[email protected]"}, 
    {"id":"E","phone":17125555555,"email":"[email protected]"}, 
    {"id":"F","phone":17125555555,"email":"[email protected]"}, 
    {"id":"G","phone":14055555555,"email":"[email protected]"}, 
    {"id":"H","phone":13105555555,"email":"[email protected]"} 
    ] 

Antwort

2

Ihre Ausgabe zu erreichen, definieren Struktur als folgt-

type Identification struct { 
    ID string 
    Phone int64 
    Email string 
} 

und führen den Betrieb als folgt-

// define slice of Identification 
var idents []Identification 

// Unmarshall it 
err := json.Unmarshal([]byte(jsonText), &idents) 

// add further value into it 
idents = append(idents, Identification{ID: "ID", Phone: 15555555555, Email: "Email"}) 

// now Marshal it 
result, error := json.Marshal(idents) 

// now result has your targeted JSON structure 

Beispielprogramm von oben Erklärung https://play.golang.org/p/67dqOaCWHI

+0

Der einzige Grund, warum ich meine Struktur auf meine Art und Weise definierte, war, dass ich sie durchsprechen konnte, indem ich sagte : für index: = Bereich Identifikation. Wie könnte ich durch Ihre Struktur iterieren? Der Grund für die Iteration besteht darin, sicherzustellen, dass ich den Benutzer nicht dupliziere. –

+0

Sie können den Wert "Idents" iterieren. – jeevatkm

+0

Es tut mir leid, was meinst du damit, wenn du "idents value" durchliest? –