[過去ログ] Go language part 3 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
56
(1): デフォルトの名無しさん [sage] 2019/10/26(土) 18:26:00 ID:WK67sdAG(1/3) AAS
いまいちカッコ悪いが、
各フィールドをinterface{}で受けて、有無をnil判定するのはどうか

type Person struct {
Name interface{} `json:"name"`
Age interface{} `json:"age"`
}
func encodeField(v interface{}) string {
if v == nil { return "" }; return fmt.Sprint(v)
}
func main() {
var persons []*Person
json.Unmarshal([]byte(`[{"name": "Tanaka", "age": 26},
{"name": "Tanaka"},{"age": 26}, {}]`), &persons)
w := csv.NewWriter(os.Stdout)
for _, person := range persons {
records := []string{encodeField(person.Name),encodeField(person.Age)}
w.Write(records)
}
w.Flush()
}

【出力】
Tanaka,26
Tanaka,
,26
,
58: 56 [sage] 2019/10/26(土) 19:00:33 ID:WK67sdAG(2/3) AAS
書いた後にアレだが、 >>55
55(1): デフォルトの名無しさん [sage] 2019/10/26(土) 17:57:54 ID:cnCbS4wm(1/3) AAS
普通にjson.Unmarshal()するだけで、mapになるそうだから
入っていないキーは入っていないと分かるのとちがう?

設定ファイルとか使うコード書いたことないから受け売りなんだけど
のやり方のほうが良い

var persons []map[string]interface{}
59: デフォルトの名無しさん [sage] 2019/10/26(土) 19:17:37 ID:WK67sdAG(3/3) AAS
どうぞ
外部リンク:play.golang.org
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s