私はこのような配列を持っています。
[{
"seq" : 2,
"amnt" : 125
},
{
"seq" : 3
"amnt" : 25
},
{
"seq" : 2
"amnt" : 250
}]
この配列からオブジェクトをフェッチする必要がありますseq
。ここで、は2です。
Linqには、where条件を設定できる拡張機能があります。
Goでは、ループして使用するfor loop
必要がありますか、それとも別の方法がありますか?
最適な方法を教えてください。
注: jsonには多くのフィールドがあります。この例では、2つだけ指定しました。
私はGoの新しい学習者です。
これを行うための「最適な」方法についてはわかりませんが、前進するために今のところできることは次のとおりです。
package main
import (
"encoding/json"
"fmt"
)
func main() {
byt := []byte(`[{"seq": 2,"amnt": 125},{"seq": 3,"amnt": 25},{"seq": 2,"amnt": 250}]`)
var dat []map[string]int
if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}
for idx := range dat {
if dat[idx]["seq"] == 2 {
fmt.Println("bingo")
}
}
}
幸運を。
編集:私の最初の答えでは、数値以外の値がある可能性があると思ったので、interface{}
タイプを使用しましたが、@ JimBの提案の後int
、タイプのみを検索するように変更しました。したがって、string
jsonペイロードに何らかのタイプが必要な場合アンマーシャリングは失敗します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加