1

.protoファイルによって生成された.pb.goファイルの構造体には、3 つの追加フィールドと、次のようなその他の要素があります。

ここに画像の説明を入力

この構造体jsonに変換するとき、1 つのフィールドが空の場合、そのフィールドは json に表示されません。これで、 jsonpb.Marshalerを使用して実行できることがわかりました。

m := jsonpb.Marshaler{EmitDefaults: true}

今、私は構造体map[string]interface{}に変換し、 InfluxDBに入れ ます。構造体を map[string]interface{} に変換する必要があります。関数NewPointが必要です。このような: ここに画像の説明を入力 ここに画像の説明を入力

ここに画像の説明を入力

go でstructs.Map(value)関数を使用します。変換されたマップには 3 つの追加フィールドがあり、プログラムを実行すると次のようなエラーが発生します。

{"error":"unable to parse 'txt,severity=1 CurrentValue=\"1002\",MetricAlias=\"CPU\",XXX_sizecache=0i,XXX_unrecognized= 1552551101': missing field value"}

これらの 3 つのフィールドを削除すると、プログラムは正常に実行されます。これらの 3 つのフィールドは自動的に生成され、多くの構造体があります。どうすればいいですか?ありがとうございます!

4

1 に答える 1