Преобразования идут структуры в JSON



Я пытаюсь преобразовать структуру Go в JSON с помощью json пакет, но все, что я получаю это {}. Я уверен, что это нечто совершенно очевидное, но я этого не вижу.



package main

import (
"fmt"
"encoding/json"
)

type User struct {
name string
}

func main() {
user := &User{name:"Frank"}
b, err := json.Marshal(user)
if err != nil {
fmt.Printf("Error: %s", err)
return;
}
fmt.Println(string(b))
}


затем, когда я пытаюсь запустить его, я получаю это:



$ 6g test.go && 6l -o test test.6 && ./test 
{}
600   3  

3 ответов:

вам нужно экспорт the вижу. Переименовать

смежный вопрос:

у меня возникли проблемы с преобразованием struct в JSON, отправкой его в качестве ответа от Golang, а затем позже поймать то же самое в JavaScript через Ajax.

потратил впустую много времени, поэтому разместите решение здесь.

В Go:

// web server

type Foo struct {
    Number int    `json:"number"`
    Title  string `json:"title"`
}

foo_marshalled, err := json.Marshal(Foo{Number: 1, Title: "test"})
fmt.Fprint(w, string(foo_marshalled)) // write response to ResponseWriter (w)

В JavaScript:

// web call & receive in "data", thru Ajax/ other

var Foo = JSON.parse(data);
console.log("number: " + Foo.number);
console.log("title: " + Foo.title);

надеюсь, это кому-то поможет.
Желаю удачи.

значения структуры кодируются как объекты JSON. Каждое экспортированное поле структуры становится член объекта, если только:

  • тег поля -" -", или
  • поле пустое, и его тег указывает параметр "omitempty".

пустые значения false, 0, любой нулевой указатель или значение интерфейса, и
любой массив, срез, карта или строка нулевой длины. Объект по умолчанию
ключевая строка-это имя поля структуры, но его можно указать в поле структуры
значение тега поля. Ключ "json" в значении тега поля struct-это
имя ключа, за которым следует необязательная запятая и параметры.

Comments

    Ничего не найдено.