2014-10-05 2 views
0

Я пытаюсь маршалировать структуру в json. Он работает, когда структура имеет значения. Тем не менее, я не могу получить доступ к веб-странице, когда структура не имеет значения:Перейти: Маршал пустой структуры в json

Перейти:

type Fruits struct { 
    Apple []*Description 'json:"apple, omitempty"' 
} 

type Description struct { 
    Color string 
    Weight int 
} 

func Handler(w http.ResponseWriter, r *http.Request) { 
    j := {[]} 
    js, _ := json.Marshal(j) 
    w.Write(js) 
} 

ли ошибка, потому что json.Marshal не может мобилизовывать пустой-структуру?

+0

какая ошибка? Вы явно игнорируете ошибку. Это может помочь проверить это. Кроме того, {[]} является недопустимым синтаксисом в Go. – Logiraptor

ответ

1

Смотрите здесь: http://play.golang.org/p/k6d6y7TnIQ

package main 

import "fmt" 
import "encoding/json" 

type Fruits struct { 
    Apple []*Description `json:"apple, omitempty"` 
} 

type Description struct { 
    Color string 
    Weight int 
} 

func main() { 
    j := Fruits{[]*Description{}} // This is the syntax for creating an empty Fruits 
    // OR: var j Fruits 
    js, err := json.Marshal(j) 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 
    fmt.Println(string(js)) 
} 
Смежные вопросы