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;
}