Task.thrift (Бережливость версия 0.9.3)Как сохранить бережливую структуру в удобном для пользователя формате JSON с перечислением чисел в Голанге?
enum AttributeApp {
a = 1,
b = 2,
c = 3
}
typedef i32 attrTypeId
struct Task {
1: required attrTypeId type_id,
2: required list<AttributeApp> app_to,
}
Сформирован Apache Бережливость код Java маршала перечислений по номерам.
$ бережливость -r --gen Java Task.thrift
TSerializer serializer = new TSerializer(new TSimpleJSONProtocol.Factory());
String json = serializer.toString(task);
Util.writeLog("task.json", json);
Как создать Apache код бережливости для Golang с JSON маршалом перечисления по номеру вместо имени?
$ бережливости -r --gen пойти Task.thrift
В этом примере сделать перечисления строк:
bt, err := json.Marshal(task)
if err != nil {
return err
}
err = ioutil.WriteFile("task.json", bt, 0666)
В этом примере сделать перечисления по номерам, но добавить два дополнительные номер в любой список 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 работает отлично, но не удобен для пользователя. –