1.hasFieldValue を作成
・取り出す値はstring固定
・field nameの有無を示すbool値
hasFieldValue ( target interface { } , field_name string) (string , bool)
2.呼び出し側のcode
・targetはstructで定義した構造体
var _t string; var target interface {}; .... err = rows.Scan( &_t); json.Unmarshal([]byte(_t), &target) search_string:="format" hasFieldValue(target, search_string);
3.hasFieldValue 関数
func hasFieldValue(target interface{}, field_name string) (string, bool) { iter := reflect.ValueOf( target).MapRange() for iter.Next() { k := fmt.Sprintf("%s",iter.Key()) if k == field_name { v := fmt.Sprintf("%s",iter.Value()); return v, true; } } return "", false; }