golang

2016-04-30 8 views
0

サンプルコードgolang

package main 

import (
    "encoding/json" 
    "fmt" 
) 

type ClassRoom struct { 
    Student struct { 
     Name string 
     /* 
      Address struct { 
       City string 
       Zip int 
      } `json:"address"` 
     */ 
     Address []string `json:"address"` //here, Want to get json string 
     Age  int  `json:"age"` 
    } `json:"student"` 
    ClassCode int `json:"code"` 
} 

func main() { 
    jsonDocs := `[ 
    {"student":{"name":"jss","address":{"City":"Seoul","Zip":54},"Age":28},"ClassCode":1234}]` 

    var node []ClassRoom 

    json.Unmarshal([]byte(jsonDocs), &node) 
    fmt.Println(node) 
} 

私は({"City":"Seoul"....}のような)JSON文字列型の変数に対処したいに非整列化で使用してJSONのドキュメントから構造のJSON文字列を取得する方法。

答えて

0

あなたはjson.RawMessage代わりの[]string、例を使用する必要があります。

type ClassRoom struct { 
    Student struct { 
     Name string 
     Address json.RawMessage `json:"address"` //here, Want to get json string 
     Age  int    `json:"age"` 
    } `json:"student"` 
    ClassCode int `json:"code"` 
} 

func main() { 
    jsonDocs := `[{"student":{"name":"jss","address":{"City":"Seoul","Zip":54},"Age":28},"ClassCode":1234}]` 
    var node []ClassRoom 

    json.Unmarshal([]byte(jsonDocs), &node) 
    fmt.Printf("%s\n", node[0].Student.Address) 

    var addr struct { 
     City string 
     Zip int 
    } 
    json.Unmarshal(node[0].Student.Address, &addr) 
    fmt.Printf("%+v", addr) 
} 

playground

+0

はありがとうございました!!!^_^ –

+0

@ J.soo私の答えが助けられたら、あなたはチェックマークをクリックしてそれを選択することができます:) – OneOfOne