私はGoで、JSONファイルからキーと値をプリントアウトする方法を見つけようとしています。うまくいけば、すべての構造体を行うことなく。それはとても醜いです。Go(ゴラン)のキーとバリューを「きれいに」読むにはどうすればいいですか?
答えて
map[string]interface{}
タイプを使用できます。
package main
import (
"encoding/json"
"fmt"
)
func main() {
var jsonBlob = []byte(`{"thing": [
{"Name": "Platypus", "Order": "Monotremata"},
{"Name": "Quoll", "Order": "Dasyuromorphia"}
]}`)
var jsonthing map[string]interface{}
err := json.Unmarshal(jsonBlob, &jsonthing)
if err != nil {
fmt.Println("error:", err)
}
for k, v := range jsonthing {
fmt.Println("key:", k)
fmt.Println("value:", v)
}
}
これは、次のプリントアウトされます:
▶ go run main.go
key: thing
value: [map[Name:Platypus Order:Monotremata] map[Name:Quoll Order:Dasyuromorphia]]
クリーナーオプションはgo-simplejson
ライブラリを使用することです。
まずパッケージを取得:go get github.com/bitly/go-simplejson
package main
import (
"fmt"
simplejson "github.com/bitly/go-simplejson"
)
func main() {
var jsonBlob = []byte(`{"thing": [
{"Name": "Platypus", "Order": "Monotremata"},
{"Name": "Quoll", "Order": "Dasyuromorphia"}
]}`)
json, err := simplejson.NewJson(jsonBlob)
if err != nil {
fmt.Println(err)
}
b, err := json.EncodePretty()
if err != nil {
fmt.Println(err)
}
fmt.Println(string(b))
}
これはあなたを与える:
▶ go run main.go
{
"thing": [
{
"Name": "Platypus",
"Order": "Monotremata"
},
{
"Name": "Quoll",
"Order": "Dasyuromorphia"
}
]
}
ええ、私の問題は.jsonファイルから取得しています –
jsonファイルを提供するとします。 data.json私はすべてのキーと値を印刷したいと思います。あなたは簡単にjavascriptのforループを使ってこれを行うことができます。 Goでそれを操作する良い方法はありますか?私の質問は –
JSONを操作したり、JSONを印刷しようとしていますか?両方のソリューションが異なるため、明確にしてください。 'ioutil.ReadFile'を使うと' .json'ファイルを '[] byte'に読み込むことができます。 – nii236
- 1. サイトマップとそのディレクトリを読むにはどうすればいいですか?
- 2. ローカルテキストファイルを読むにはどうすればよいですか?
- 3. Google +のサークル/ストリームを読むにはどうすればいいですか
- 4. phpのファイルを読み込むにはどうすればいいですか?
- 5. Windows 7のセットアップイベントログを読むにはどうすればいいですか?
- 6. gtk3オブジェクトの "glade ID"を読むにはどうすればいいですか
- 7. Unix:複数の行を読むにはどうすればいいですか?
- 8. C言語のファイルを読むにはどうすればいいですか
- 9. win32 Cプログラムでビデオカメラを読むにはどうすればいいですか
- 10. コードバでローカルテキストファイルを読むにはどうすればいいですか?
- 11. Javaでバイナリデータファイルを読むにはどうすればいいですか
- 12. IBM jitダンプ・ファイルを読むにはどうすればいいですか
- 13. Firefox "about:memory"を読むにはどうすればいいですか?
- 14. mavlinkパッケージを読むにはどうすればいいですか?
- 15. MSVC C++リンケージエラーを読むにはどうすればいいですか
- 16. Go - インターフェイスのスライスをコピーするにはどうすればいいですか?
- 17. Goにvoid * Cポインタを書き込むにはどうすればよいですか?
- 18. stdinに書き込むGoテストを書くにはどうすればよいですか?
- 19. パイプにさらに値を書き込んで読み込むにはどうすればいいですか?
- 20. HTMLをハンドルに書き込むにはどうすればいいですか?
- 21. JTextPaneにステータスバーを書き込むにはどうすればいいですか?
- 22. イメージをファイルに書き込むにはどうすればいいですか?
- 23. Rustのメモリマップアドレスに書き込むにはどうすればいいですか?
- 24. ゴランでは、xlsxのセル内に改行を出力するにはどうすればいいですか?
- 25. Goでテストを確定できないとマークするにはどうすればよいですか?
- 26. データフレームのsummary()のコードを読むにはどうすればよいですか?
- 27. このjavascriptの図を読むにはどうすればよいですか?
- 28. Goのアリスミドルウェアにパラメータを渡すにはどうすればよいですか?
- 29. RubyでCSVを読むときにヘッダー行をスキップするにはどうすればよいですか?
- 30. コンソールで1つのキー入力を待って読み込むにはどうすればよいですか?
あなたすでに試してみましたか? – surajsn
私は見つけることができるすべてを試しました。 –