정렬 해제를 위해 JSON 문자열 이스케이프 해제
Sockjs 및 Go로 작업할 때 JavaScript 클라이언트에서 보낸 JSON 문자열을 구문 분석하는 데 문제가 발생할 수 있습니다. 탈출. JavaScript 클라이언트는 문자열을 이스케이프하여 []byte로 보낼 수 있으며 이로 인해 역마샬링이 어려워질 수 있습니다.
이 문제를 해결하려면 strconv.Unquote 함수를 활용하여 JSON 문자열에서 이스케이프를 제거할 수 있습니다. 이 함수는 문자열을 인수로 사용하고 이스케이프 처리되지 않은 버전을 반환합니다.
해결책:
import ( "encoding/json" "fmt" "strconv" ) // Code goes here. func main() { var msg Msg var val []byte = []byte(`"{\"channel\":\"buu\",\"name\":\"john\", \"msg\":\"doe\"}"`) s, _ := strconv.Unquote(string(val)) err := json.Unmarshal([]byte(s), &msg) fmt.Println(s) fmt.Println(err) fmt.Println(msg.Channel, msg.Name, msg.Msg) }
출력:
{"channel":"buu","name":"john","msg":"doe"} <nil> buu john doe
위 내용은 Go에서 이스케이프된 JSON 문자열을 안전하게 역마샬링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!