Maison > Article > développement back-end > Comment trier et filtrer les données JSON dans Golang ?
Trier et filtrer les données JSON dans Golang : Trier : utilisez la fonction sort.Slice pour trier les données JSON en fonction des champs spécifiés. Filtrage : utilisez les boucles for et les instructions conditionnelles pour filtrer les données JSON en fonction de conditions spécifiées. Cas pratique : Lire les informations utilisateur à partir d'un fichier JSON, trier par âge par ordre décroissant et filtrer les utilisateurs de plus de 25 ans.
Comment trier et filtrer les données JSON dans Golang
JSON (JavaScript Object Notation) est un format d'échange de données léger basé sur du texte qui est largement utilisé dans les applications Web et mobiles. Lors du traitement des données JSON dans Golang, nous devons souvent trier et filtrer les données pour obtenir les informations souhaitées.
Trier
Utilisez le package sort
pour trier les données JSON : sort
包对 JSON 数据进行排序:
package main import ( "encoding/json" "fmt" "sort" ) type Person struct { Name string Age int Score float64 } func main() { data := []Person{ {"John", 25, 85.5}, {"Mary", 28, 90.0}, {"Bob", 23, 87.2}, } // 根据 Age 字段升序排序 sort.Slice(data, func(i, j int) bool { return data[i].Age < data[j].Age }) fmt.Println(data) // 输出:[{Bob 23 87.2} {John 25 85.5} {Mary 28 90}] // 根据 Score 字段降序排序 sort.Slice(data, func(i, j int) bool { return data[i].Score > data[j].Score }) fmt.Println(data) // 输出:[{Mary 28 90} {Bob 23 87.2} {John 25 85.5}] }
过滤
使用 for
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int Score float64 } func main() { data := []Person{ {"John", 25, 85.5}, {"Mary", 28, 90.0}, {"Bob", 23, 87.2}, } // 过滤出年龄大于 25 的人员 filteredData := []Person{} for _, person := range data { if person.Age > 25 { filteredData = append(filteredData, person) } } fmt.Println(filteredData) // 输出:[{Mary 28 90}] }
Filter
Utilisez les bouclesfor
et les instructions conditionnelles pour filtrer les données JSON :
[ { "name": "John", "age": 25, "score": 85.5 }, { "name": "Mary", "age": 28, "score": 90.0 }, { "name": "Bob", "age": 23, "score": 87.2 } ]
Cas pratique
Considérons un scénario : vous disposez d'un fichier JSON contenant des informations sur les utilisateurs et vous souhaitez trier les utilisateurs par âge par ordre décroissant et obtenir uniquement les utilisateurs dont l'âge est supérieur à 25 ans.Fichier JSON :
🎜package main import ( "encoding/json" "fmt" "io/ioutil" "os" "sort" ) type Person struct { Name string Age int Score float64 } func main() { // 从文件读取 JSON 数据 jsonFile, err := os.Open("users.json") if err != nil { fmt.Println(err) return } defer jsonFile.Close() byteValue, err := ioutil.ReadAll(jsonFile) if err != nil { fmt.Println(err) return } // 解码 JSON 数据 var data []Person err = json.Unmarshal(byteValue, &data) if err != nil { fmt.Println(err) return } // 对数据进行排序和过滤 sort.Slice(data, func(i, j int) bool { return data[i].Age > data[j].Age }) filteredData := []Person{} for _, person := range data { if person.Age > 25 { filteredData = append(filteredData, person) } } // 打印结果 fmt.Println(filteredData) // 输出:[{Mary 28 90}] }🎜🎜Code Golang : 🎜🎜rrreee
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!