Golang에서 JSON 데이터 정렬 및 필터링: 정렬: sort.Slice 함수를 사용하여 지정된 필드를 기반으로 JSON 데이터를 정렬합니다. 필터링: for 루프 및 조건문을 사용하여 지정된 조건에 따라 JSON 데이터를 필터링합니다. 실제 사례: JSON 파일에서 사용자 정보를 읽고, 나이를 기준으로 내림차순으로 정렬하고, 25세 이상의 사용자를 필터링합니다.
Golang에서 JSON 데이터를 정렬하고 필터링하는 방법
JSON(JavaScript Object Notation)은 웹 및 모바일 애플리케이션에서 널리 사용되는 경량의 텍스트 기반 데이터 교환 형식입니다. Golang에서 JSON 데이터를 처리할 때 원하는 정보를 얻기 위해 데이터를 정렬하고 필터링해야 하는 경우가 많습니다.
Sort
sort
패키지를 사용하여 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
for
루프 및 조건문을 사용하여 JSON 데이터 필터링:
[ { "name": "John", "age": 25, "score": 85.5 }, { "name": "Mary", "age": 28, "score": 90.0 }, { "name": "Bob", "age": 23, "score": 87.2 } ]
실용 사례
예를 들어 보겠습니다. 사용자 정보가 포함된 JSON 파일이 있고 사용자를 나이별로 내림차순으로 정렬하고 나이가 25세보다 큰 사용자만 가져오려고 합니다.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}] }
위 내용은 Golang에서 JSON 데이터를 정렬하고 필터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!