ID#、電話番号、および電子メールを持つユーザーのJSONドキュメントがあります。別のID、電話番号、電子メールを入力すると、新しいユーザーの情報を取得してファイルに追加する必要があります。私は{ID:#、Phone:#、Email:#}だけの構造しか持っていませんが、うまくいきます。しかし、私のJSONファイルのような次のようになります。JSONファイルにJSON構造体を追加する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]"}]
だから私は、ドキュメントに追加することができるよ、それは括弧[]で囲まれた新しいJSON構造です。以下は私のコードです。私は実際のハッシュIDを省いた。
func ToIds(e string, p int64) {
hashed := GenId()
var jsonText = []byte(`[
{"ID": "", "Phone": 0, "Email": ""}
]`)
var I Identification
err := json.Unmarshal([]byte(jsonText), &I)
if err != nil {
fmt.Println(err)
}
I[0].ID = hashed
I[0].Phone = p
I[0].Email = e
result, error := json.Marshal(I)
if error != nil {
fmt.Println(error)
}
f, erro := os.OpenFile("FILE_PATH", os.O_APPEND|os.O_WRONLY, 0666)
if erro != nil {
fmt.Println(erro)
}
n, err := io.WriteString(f, string(result))
if err != nil {
fmt.Println(n, err)
}
}
これは、ここで私の識別構造体です。
type Identification []struct { ID string Phone int64
Email string }
は基本的に、私は外にカッコをしたいし、それらの括弧の中、私は、複数のユーザーを追加します。このような何か:
[
{"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]"}
]
構造体を私の方法で定義した唯一の理由は、私がそれを繰り返すことができるようにすることでした:インデックス用:=範囲識別。どのように私はあなたの構造を反復することができますか?反復の理由は、私がユーザーを複製していないことを確認することです。 –
'idents'値を反復することができます。 – jeevatkm
申し訳ありませんが、 "idents value"を反復することはどういう意味ですか? –