2016-03-20 12 views
-2

へのが、私はこのような文字列があるとしましょう:= val1と、KEY2 = val2の(など)デシリアライズのカンマ区切りの構造体

キー1

私はにそれをデシリアライズしたいですstruct(私のコードで定義した型)は、JSONやXMLと同様です。 Ofcはデコーダ機能を書くことができましたが、あなた自身のデシリアライザを書くには時間がかかるかもしれないし、それを実行する前にGoの標準ライブラリがあると思ったので、それが存在するかもしれないと思った。

+0

stdlibのドキュメントを見てみましたか? https://golang.org/pkg/encoding/csv/ – OneOfOne

答えて

1

あなたが求めていることを行うライブラリが分からない。しかし、そのような文字列で作業するのは簡単です。私はそれを行う必要がある構造体のほんの少数のタイプがあったら、strings.Split(s、 "、")を使用してkey = value文字列のスライスを作成し、次にstrings.Split(ss、 "= ")効率的である必要のないコードをすばやく作成したい場合は、もう一度コードを作成してください。その後、switchステートメントでキー値を実行し、一致する構造体フィールドを更新します。

これを超効率的にしたいのであれば、2バイトスライスをそれぞれの後続のキーと値にリセットし、最初にスライスのスライスを作成しないでください。

一方、コードを速く記述し、多くのタイプの構造体を処理したい場合は、文字列を正当なJSONに変更してJSONのUnmarshal()関数を使用します。あなたが何かを見逃してしまった場合、json.Unmarshal()エラーがあなたに伝えます。