ホームページ >バックエンド開発 >Golang >Unicode でエスケープされた生の JSON データを Go で読み取れるようにするにはどうすればよいですか?

Unicode でエスケープされた生の JSON データを Go で読み取れるようにするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-05 19:28:11676ブラウズ

How Can I Make Raw Unicode-Escaped JSON Data Readable in Go?

生の Unicode でエンコードされたコンテンツを読み取り可能にするにはどうすればよいですか?

Web API から JSON データをリクエストすると、生の ASCII コンテンツが表示されることがあります。 Unicode エスケープとして表示されます。 bufio.ScanRunes を使用した応答の解析は失敗しますが、json パッケージや strconv.Unquote などのツールを使用して応答をデコードすると、Unicode エスケープを読み取り可能なテキストに効果的に変換できます。

詳細な説明:

質問で提供された JSON データには、バックスラッシュ エスケープを使用して表現された Unicode 文字が含まれています。 u5408とu672a。これらのエスケープをデコードして実際の Unicode 文字を明らかにするには、次のメソッドを利用できます:

  • JSON パッケージ (json): JSON は、JSON データのアンマーシャリング時に Unicode エスケープの自動デコードをサポートします。 。以下に例を示します。
package main

import (
    "encoding/json"
)

func main() {
    var i interface{}
    err := json.Unmarshal([]byte(`{"name": "\u5408\u80a5"}`), &i)
    fmt.Println(err, i)
}

出力 (Go Playground で試してください):

<nil> map[name:同学]
  • strconv.Unquote: 引用符を外す場合Unicode でエンコードされたテキストの小さなフラグメントである strconv.Unquote を使用できます。以下に示すように、引用符で囲まれた文字列が必要です。
fmt.Println(strconv.Unquote(`"\u7d20\u672a\u8c0b"`))

出力 (Go プレイグラウンドで試してください):

素未谋

strconv.Unquote には引用符で囲まれる文字列。コンパイラがエスケープの引用符を外さないように、生の文字列リテラル ( ` ) を使用して実現されます。それ自体。

以上がUnicode でエスケープされた生の JSON データを Go で読み取れるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。