From: Jens Geyer Date: Thu, 19 Jun 2014 20:49:54 +0000 (+0200) Subject: THRIFT-2549 Generate json tag for struct members. use go.tag annotation to override... X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=c0d126fcafe215b40a83c779751d97192f9d10b1;p=common%2Fthrift.git THRIFT-2549 Generate json tag for struct members. use go.tag annotation to override the default generated tag. Client: Go Patch: Aleksey Pesternikov This closes #128 --- diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc index 19f502df..f9bd3d34 100644 --- a/compiler/cpp/src/generate/t_go_generator.cc +++ b/compiler/cpp/src/generate/t_go_generator.cc @@ -1159,7 +1159,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()) @@ -1169,7 +1173,7 @@ void t_go_generator::generate_go_struct_definition(ofstream& out, out << ",required"; } - out << "\"`" << endl; + out << "\" " <