golang structから、指定したfield nameで値を取り出す関数

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