diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc index c581ffa8a16..3d72dd6b5fa 100644 --- a/compiler/cpp/src/generate/t_go_generator.cc +++ b/compiler/cpp/src/generate/t_go_generator.cc @@ -1152,7 +1152,11 @@ void t_go_generator::generate_go_struct_definition(ofstream& out, t_type* fieldType = (*m_iter)->get_type(); string goType = type_to_go_type_with_opt(fieldType, is_pointer_field(*m_iter)); - + string gotag("json:\"" + escape_string((*m_iter)->get_name()) + "\""); + std::map::iterator it = (*m_iter)->annotations_.find("go.tag"); + if (it != (*m_iter)->annotations_.end()) { + gotag = it->second; + } indent(out) << publicize(variable_name_to_go_name((*m_iter)->get_name())) << " " << goType << " `thrift:\"" << escape_string((*m_iter)->get_name()) @@ -1162,7 +1166,7 @@ void t_go_generator::generate_go_struct_definition(ofstream& out, out << ",required"; } - out << "\"`" << endl; + out << "\" " <