私は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. を読むにはどうすればいいですか?C#
- 2. サイトマップとそのディレクトリを読むにはどうすればいいですか?
- 3. ローカルテキストファイルを読むにはどうすればよいですか?
- 4. URLSessionTaskMetricsを読むにはどうすればよいですか?
- 5. jsonのローカルファイルを読み込むにはどうすればいいですか?
- 6. Windows 7のセットアップイベントログを読むにはどうすればいいですか?
- 7. Unix:複数の行を読むにはどうすればいいですか?
- 8. phpのファイルを読み込むにはどうすればいいですか?
- 9. C言語のファイルを読むにはどうすればいいですか
- 10. gtk3オブジェクトの "glade ID"を読むにはどうすればいいですか
- 11. Google +のサークル/ストリームを読むにはどうすればいいですか
- 12. gmail APIでメールを読むにはどうすればいいですか?
- 13. Javaでバイナリデータファイルを読むにはどうすればいいですか
- 14. コードバでローカルテキストファイルを読むにはどうすればいいですか?
- 15. Pythonで.difファイルを読むにはどうすればいいですか
- 16. asyncでファイルを読むにはどうすればいいですか?
- 17. win32 Cプログラムでビデオカメラを読むにはどうすればいいですか
- 18. Firefox "about:memory"を読むにはどうすればいいですか?
- 19. MSVC C++リンケージエラーを読むにはどうすればいいですか
- 20. IBM jitダンプ・ファイルを読むにはどうすればいいですか
- 21. mavlinkパッケージを読むにはどうすればいいですか?
- 22. Go - インターフェイスのスライスをコピーするにはどうすればいいですか?
- 23. DocumentClientキーがシングルトンのときに、DocumentClientキーを回転するにはどうすればいいですか?
- 24. JTextPaneにステータスバーを書き込むにはどうすればいいですか?
- 25. HTMLをハンドルに書き込むにはどうすればいいですか?
- 26. イメージをファイルに書き込むにはどうすればいいですか?
- 27. stdinに書き込むGoテストを書くにはどうすればよいですか?
- 28. Goにvoid * Cポインタを書き込むにはどうすればよいですか?
- 29. Rustのメモリマップアドレスに書き込むにはどうすればいいですか?
- 30. パイプにさらに値を書き込んで読み込むにはどうすればいいですか?
あなたすでに試してみましたか? – surajsn
私は見つけることができるすべてを試しました。 –