Task.thrift (スリフトバージョン0.9.3)番号でのJavaマーシャル列挙型用のApacheスリフトコードを生成Golangの列挙型を使用して、使いやすいJSON形式でThrift構造体を保存するにはどうすればよいですか?
enum AttributeApp {
a = 1,
b = 2,
c = 3
}
typedef i32 attrTypeId
struct Task {
1: required attrTypeId type_id,
2: required list<AttributeApp> app_to,
}
。
$倹約-r --gen javaのTask.thrift
TSerializer serializer = new TSerializer(new TSimpleJSONProtocol.Factory());
String json = serializer.toString(task);
Util.writeLog("task.json", json);
番号の代わりに、名前でJSONマーシャル列挙してGolangのためのApacheスリフトコードを生成するには?
この例では、文字列で列挙型を作るTask.thrift
を行く--gen -r
$倹約:
はbt, err := json.Marshal(task)
if err != nil {
return err
}
err = ioutil.WriteFile("task.json", bt, 0666)
この例では、数字で列挙型を作るが、中に2つの余分な数字を追加jsonの任意のリスト:
transport := thrift.NewTMemoryBufferLen(1024)
protocol := thrift.NewTSimpleJSONProtocolFactory().GetProtocol(transport)
ts := &thrift.TSerializer{transport, protocol}
bt, err := ts.Write(task)
if err != nil {
return err
}
err = ioutil.WriteFile("task.json", bt, 0666)
ユーザーフレンドリーなJSON形式のシリアル化に興味があります。 TJSONProtocolはうまく動作しますが、ユーザーフレンドリーではありません。 –