:
UnmarshalText
はテキストエンコードされた値をアンマーシャル。
UnmarshalJSON
はJSONエンコードされた値を非整列化します。
どちらが望ましいかは、実行していることによって異なります。
JSONエンコードは、RFC 7159で定義されています。 JSONドキュメントを使用している場合、JSONエンコーディングを使用する必要があります。
テキストエンコーディングには標準はなく、完全に実装に依存します。 Goはいくつかのタイプのテキスト(非)マーシャラーを実装していますが、他のアプリケーションがこれらのフォーマットを理解するという保証はありません。
テキストエンコーディングは、URLクエリパラメータ、HTMLフォーム、または他の緩やかに定義されたフォーマットなどの場合に最も一般的に使用されます。
この問題で選択肢がある場合は、おそらくJSONを使用する方がよいでしょう。しかし、もう一度、それはあなたが何を最も理にかなっているかに依存します。
GoのJSON unmarshalerに関連して、JSONのunmarshalerは型のUnmarshalJSON
メソッドが定義されている場合はそれを呼び出し、それが定義されている場合はUnmarshalText
に戻ります。
JSONを使用することがわかっている場合は、UnmarshalJSON
関数を絶対に定義する必要があります。
一般的には、非JSONコンテキストで使用することを期待している場合にのみUnmarshalText
を作成し、JSONマーシャラーも複製しなくてもそれを使用するという利点があります(実際に同じ実装が動作する場合JSONの場合)。