/ / JSON-Inhalt aus einer a-Datei mit GO googlen und mit dem GO-Template-Paket .go-Dateien generieren - json, go, go-templates

JSON-Inhalt aus einer a-Datei mithilfe von GO entmarsalisieren und .go-Dateien mit dem GO-Vorlagenpaket erstellen - json, go, go-templates

Ich bin daran interessiert, ein Schema zu lesen (jsonformatierte Textdatei) und entpackt sie als Schemas (für die ich einige JSON-Strukturen in einer .GO-Datei definiert habe). Für jeden Strukturtyp im Schema möchte ich eine entsprechende .go-Datei erzeugen, die den Code zur Ausführung von CRUD hat Operationen mit dem Vorlagenpaket (http://golang.org/pkg/text/template/) um diese Dateien zu generieren.

Beispiel für eine Struktur in einer Schemadatei - {

type struct XYZ {
Type         string                 `json:"type,omitempty"`
ResourceType string                 `json:"resourceType,omitempty"`
Links        map[string]string      `json:"links,omitempty"`

}

The text file has a JSON structured data which is something of this form -

{
"type": "collection",
"resourceType": "schema",
"links": {
"self": "…/v1/schemas",
},
"createTypes": { },
"actions": { },
"data": [ 86 items
{
"id": "schema",
"type": "schema",
"links": {
"self": "/schemas/schema",
"collection": "…/schemas",
},
...

}

}

Könnte mir jemand helfen, wie könnte ich möglicherweise den Code für diese CRUD-Operationen für verschiedene Strukturen mit dem GO-Vorlagenpaket generieren.

Antworten:

2 für die Antwort № 1

Sie könnten finden go generate sinnvoll.


Vorschlag: gehe generieren

Neuer Go-Tool-Unterbefehl für Go 1.4. Bitte beachten Sie das Design-Dokument und kommentieren Sie in diesem Thread.

http://golang.org/s/go1.4-generate

-rauben


Go generieren: Ein Vorschlag

Einführung

Der Befehl go build automatisiert die Erstellung von Go-Programmen aber manchmal ist eine vorläufige Verarbeitung erforderlich, Verarbeitung, die baut unterstützt nicht. Motivierende Beispiele sind:

  • yacc: Generieren von .go-Dateien aus yacc-Grammatikdateien (.y)
  • protobufs: Generieren von .pb.go-Dateien aus Protokollpufferdefinitionsdateien (.proto)
  • Unicode: Generierung von Tabellen aus UnicodeData.txt
  • HTML: Einbetten von HTML-Dateien in Go-Quellcode
  • bindata: Binärdateien wie JPEGs werden in Byte-Arrays in Go-Quelle übersetzt

Es gibt andere Verarbeitungsschritte, die man sich vorstellen kann:

  • string-Methoden: Generieren von String () - String-Methoden für Typen, die als Enumerationskonstanten verwendet werden
  • Makros: Generierung von angepassten Implementierungen mit generalisierten Paketen wie sort.Ints von ints

Dieser Vorschlag bietet ein Design für die reibungslose Automatisierung solcher wird bearbeitet.