11

と同等のCに関して、非常によく似たタイトルの投稿(Data :: DumperにPerlsのDumper()メソッドと同等のCはありますか?)を見てきましたData::Dumper::Dumper();。Go言語についても同様の質問があります。

私は貿易でPerlZealotであり、プログラミングの趣味であり、Data::Dumper文字通り1日に何百回も同様の子孫を利用しています。私はGoの学習を始めました。それは楽しくて面白い言語のように見えるので、私がいるPerlのわだち掘れから抜け出し、新しい方法に目を向けることができます。私が本当に欲しいのは次のようなものです:

fmt.Println(dump.Dumper(decoded_json))

Data::DumperJSONをハッシュの配列に変換するように、結果のデータ構造を確認します。Goでこれを見ると、データを作成して操作する方法を理解するのに役立ちます。このようなことは、私のGoの学習における主要な電球の瞬間と見なされます。

Cの対応する投稿で行われたステートメントとは異なり、これを記述できると思います。DumperをPrintlnに渡すので、コンパイル後、渡してデコードするJSON文字列またはXMLページをコンパイルします。ダンパーのような状態で、デコードの結果を見ることができるはずです...では、このようなものが存在することをもう知っていますか?または多分このようなことを成し遂げるためのいくつかのポインタ?

4

3 に答える 3

12

こんにちは。私は元Perlハッカーです。

あなたの質問に関しては、encoding / jsonパッケージは、おそらくgodataprettyプリンターに最も近いものです。本当に必要かどうかはわかりませんが。Data :: Dumperがperlで素晴らしかった理由の1つは、データを視覚的に検査せずに、消費しているデータの構造を本当に知らなかったことが何度もあったためです。すべてが特定のタイプであり、すべての特定のタイプが特定の構造を持っていますが、goを使用します。データがどのように見えるかを知りたい場合は、おそらくその定義を確認する必要があります。

あなたが見るべき他のいくつかのツールは次のとおりです。

  • fmt.Println("%#v", data)データをgo-syntax形式で印刷します。
  • fmt.Println("%T", data)データのタイプをgo-syntax形式で出力します。
  • その他のfmtフォーマット文字列オプションはここに記載されています:http://golang.org/pkg/fmt/
于 2012-09-22T02:09:16.637 に答える
8

Goでデータを視覚化するのに役立つパッケージをいくつか見つけました。

私の個人的なお気に入り-https://github.com/davecgh/go-spew

あります-https://github.com/tonnerre/golang-pretty

于 2014-01-31T19:33:59.443 に答える
6

私はPerlとDumperに精通していませんが、あなたの投稿と関連するCの投稿(および関数の名前そのもの!)について私が理解していることから、データ構造の内容を出力します。

これは、 fmtパッケージの%v動詞を使用して行うことができます。JSONデータは構造体またはマップにデコードされていると思います。を使用fmt.Printf("%v", json_obj)すると値が出力され、%+ vはフィールド名を追加し(構造体の場合-マップの場合は違いはありません。%vはキーと値の両方を出力します)、%#vはタイプ情報も出力します。

于 2012-09-22T02:11:25.533 に答える