Documentation ΒΆ
Index ΒΆ
- Variables
- func BoolHTML(k string, v bool) string
- func NullHTML(k string) string
- func NumberHTML(k string, v float64, s string) string
- func StringHTML(k string, v string) string
- type ArrayMarshaler
- type DefaultRowHTML
- type JSONPathCollector
- func (c *JSONPathCollector) Bool(k string, v bool) string
- func (c *JSONPathCollector) MapKey(k string, v string) string
- func (c *JSONPathCollector) Null(k string) string
- func (c *JSONPathCollector) Number(k string, v float64, s string) string
- func (c *JSONPathCollector) String(k string, v string) string
- type MapMarshaler
- type Marshaler
- type PageMarshaler
Constants ΒΆ
This section is empty.
Variables ΒΆ
var DefaultArrayHTML = ArrayMarshaler{
OpenBracket: `<div class="json-lang">[</div>`,
CloseBracket: `<div class="json-lang">]</div>`,
Comma: `<div class="json-lang">,</div>`,
}
var DefaultMapHTML = MapMarshaler{ OpenBracket: `<div class="json-lang">{</div>`, CloseBracket: `<div class="json-lang">}</div>`, Comma: `<div class="json-lang">,</div>`, Colon: `<div class="json-lang">:</div>`, Key: func(key string, v string) string { return `<div class="json-key json-string">"` + v + `"</div>` }, }
var DefaultMarshaler = Marshaler{ Null: NullHTML, Bool: BoolHTML, String: StringHTML, Number: NumberHTML, Array: DefaultArrayHTML, Map: DefaultMapHTML, Row: DefaultRowHTML{Padding: 4}.Marshal, }
DefaultMarshaler adds basic HTML div classes for further styling.
var DefaultPageMarshaler = PageMarshaler{ Title: "htmljson", Template: defaultPageTemplate, TemplateTitleKey: `{{.Title}}`, TemplateJSONKey: `{{.HTMLJSON}}`, Marshaler: &DefaultMarshaler, }
Functions ΒΆ
func StringHTML ΒΆ
Types ΒΆ
type ArrayMarshaler ΒΆ
type DefaultRowHTML ΒΆ
type DefaultRowHTML struct {
Padding int
}
type JSONPathCollector ΒΆ
JSONPathCollector provides HTML renderers as its methods and collects which JSON path keys have been passed to it and which values. This is useful for testing.
func NewJSONPathCollector ΒΆ
func NewJSONPathCollector() *JSONPathCollector
func (*JSONPathCollector) Null ΒΆ
func (c *JSONPathCollector) Null(k string) string
type MapMarshaler ΒΆ
type Marshaler ΒΆ
type Marshaler struct { Null func(key string) string Bool func(key string, v bool) string String func(key string, v string) string Number func(key string, v float64, s string) string Array ArrayMarshaler Map MapMarshaler Row func(s string, padding int) string // contains filtered or unexported fields }
Marshaler converts JSON stored as Go `any` object represented into HTML. Visually HTML is similar to pretty printed JSON with indentation. Rendering is customized by providing renderers for specific JSON elements. This facilitates CSS styling, CSS animations, and JavaScript events. JSON element renderers receive JSON path and value of element. Should be used only for types: bool, float64, string, []any, map[string]any, nil. You can get allowed input easily with json.Unmarshal to any. Safe for repeated use. Not safe for concurrent use.
type PageMarshaler ΒΆ added in v1.1.0
type PageMarshaler struct { Title string Template []byte TemplateTitleKey string TemplateJSONKey string Marshaler interface { MarshalTo(w io.Writer, v any) error } // contains filtered or unexported fields }
PageMarshaler encodes JSON via marshaller into HTML page by placing Title and content appropriately.
func (*PageMarshaler) Marshal ΒΆ added in v1.1.0
func (m *PageMarshaler) Marshal(v any) []byte