LoginSignup
3
1

More than 5 years have passed since last update.

Goのタグは英語じゃなくてもOK

Last updated at Posted at 2017-07-19

GoはUTF-8で解釈するので、多分大丈夫だろうと思ったけど、試したことはなかった。
質問されたので試してみた。

package main

import (
    "fmt"
    "encoding/json"
)

var tj = `{
  "english": "foo",
  "日本語": "テスト",
  "훈민정음": "안녕하세요",
  "اللغة العربية": "صباح الخير"
}`

type testStruct struct {
    English string `json:"english"`
    Japanese string `json:"日本語"`
    Korean string `json:"훈민정음"`
    Arabic string `json:"اللغة العربية"`
}

func main() {
    var v testStruct
    json.Unmarshal([]byte(tj), &v)
    fmt.Printf("%#v\n", v)
    b, _ := json.Marshal(v)
    fmt.Printf("%s\n", string(b))
}

結果:できた。

main.testStruct{English:"foo", Japanese:"テスト", Korean:"안녕하세요", Arabic:"صباح الخير"}
{"english":"foo","日本語":"テスト","훈민정음":"안녕하세요","اللغة العربية":"صباح الخير"}

韓国大好きっ子だと思われないようにアラビア語もやってみたけど、対応してた。すごい!!
Go PlayGroundでやるとアラビア語はきちんと右から左になるようになっていた。
すごいけど、見づらい!!

補足
全角記号がタグに含まれてると解釈してくれないもよう。
バグなのか仕様なのかは、関連事項が記載されているドキュメントが見つからなかったので不明

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1