[過去ログ] 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
書いた後にアレだが、 >>5555(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