2016-07-29 5 views
0

Ich sende Json Daten mit net/http-Paket von einer Url, ich möchte einige Kleinbuchstaben Schlüssel im Gegenzug haben, aber es funktioniert nicht.Golang Rückkehr Kleinbuchstaben Json Schlüssel

In diesem Beispiel des Problems möchte ich Kleinbuchstaben "Count" und "Daten" -Taste.

package main 

import (
    "encoding/json" 
    "fmt" 
    "net/http" 
) 

type tableau struct { 
    Count int  `json"count"` 
    Data []People `json"data"` 
} 

type People struct { 
    Id int `json"Id"` 
    Name string `json"Name"` 
    Age int `json"Age"` 
} 

func main() { 
    http.HandleFunc("/people", recupPeople) 
    fs := http.FileServer(http.Dir("Static")) 
    http.Handle("/", fs) 
    http.ListenAndServe(":80", nil) 
} 

func recupPeople(w http.ResponseWriter, r *http.Request) { 
    listPeople := &tableau{ 
     Count: 4, 
     Data: []People{ 
      People{Id: 1, Name: "Laurent", Age: 20}, 
      People{Id: 2, Name: "Laurent", Age: 20}, 
     }, 
    } 
    peop, _ := json.Marshal(listPeople) 
    fmt.Println(string(peop)) 
    w.Write(peop) 
    json.NewEncoder(w).Encode(listPeople) 
} 

Aber wenn ich die URL überprüfen habe ich nicht niedrigen Fall hat. enter image description here

Herzlichst, Laurent

+2

Ihre Tags sind fehlerhaft: '\' json: "count" \ '' – JimB

Antwort

6

Sie haben vergessen, Doppelpunkt in Tag-Erklärung. Da Tags nicht im richtigen Format sind, sind Feldnamen in Ihrem JSON.

Versuchen Sie folgendes:

type tableau struct { 
    Count int  `json:"count"` 
    Data []People `json:"data"` 
} 
+1

Nur eine Anmerkung: da die Json-Sache nicht richtig gemacht wurde, griff der Encoder nach dem Feldnamen. –

+1

Es ist besser mit: Vielen Dank –

3

Versuchen das Hinzufügen einer : zu Ihrem struct tags:

type tableau struct { 
    Count int  `json:"count"` 
    Data []People `json:"data"` 
}