Go Lang에서 중첩된 구조화되지 않은 JSON을 처리하는 것은 중요한 작업입니다. JSON(JavaScript Object Notation)은 일반적으로 사용되는 데이터 교환 형식이지만 JSON 데이터가 복잡하게 중첩되면 처리가 어려워질 수 있습니다. PHP 편집자 Yuzai는 Go Lang에서 중첩된 구조화되지 않은 JSON을 처리하는 몇 가지 방법과 기술을 소개하여 이 데이터를 보다 효율적으로 구문 분석하고 운영하는 데 도움을 줍니다. 이러한 기술을 익히면 복잡한 JSON 데이터를 쉽게 처리하고 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다.
golang의 구조화되지 않은 json 데이터에서 특정 데이터에 액세스하는 방법을 이해하려고 합니다. 다음 json이 있고 foo1에 비어 있는 foo2와 다른 데이터가 있을 때 자료 아래의 "foo1"에 액세스하려고 합니다. foo1과 같은 객체에 데이터가 있으면 동일한 이름의 분류 섹션에서도 데이터를 읽어야 합니다. 예를 들어. Material 섹션 아래의 foo1에는 데이터가 있으므로 Material->foo1 아래에 메서드 키 값을 인쇄하고 Category->foo1의 설명을 인쇄해야 합니다.
으아악foo1이 비어 있지 않으면 예상 출력:
package main import ( "encoding/json" "fmt" ) type new struct { desc string `json:"desc"` } func main() { bjson := `{ "classifications": { "foo1": { "desc": "it may be possible.", "sol": "the backups.", "ref": { "sensitive information": "https://www.sensitive_information.html", "control sphere": "https://ww.example.org/data.html" },"bar1": { "desc": "the target", "sol": "should be used.", "ref": { "abc: srgery": "https://www.orp.org/" } }}, "material": { "backup file": [],"foo1": [ { "method": "get", "info": "it is not set", "level": 1, "parameter": "", "referer": "", "module": "diq", "curl_command": "curl \"https://example.com/\"", "wsg": [ "conf-12", "o-policy" ] }],"foo2": [],"bar1": []}, "anomalies": { "server error": [], "resource consumption": [] }, "additionals": { "web technology": [], "methods": [] }, "infos": { "url": "https://example.com/", "date": "thu, 08 dec 2022 06:52:04 +0000"}}}` var parseddata = make(map[string]map[string]new) json.unmarshal([]byte(bjson), &parseddata) fmt.println("output of parseddata - \n", parseddata["classifications"]["foo1"].desc) //for _, v := range parseddata["material"] { // fmt.println(v) //} }
이를 map[string]interface{}
변수로 역마샬링한 다음 일련의 유형 어설션을 사용하여 다음과 같이 원하는 정보를 얻을 수 있습니다.
위 내용은 다음과 같이 출력됩니다.
으아악전체 작동 버전의 코드는 다음과 같습니다.
으아악만약 이것을 만들면:
으아악작동 방법은 다음과 같습니다.
으아악값이 존재하지 않거나 빈 목록인지 확인하세요.
으아악위 내용은 Go Lang에서 중첩된 구조화되지 않은 JSON 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!