func NewFooJSONBuilder() *FooJSONBuilder {
	jb := &FooJSONBuilder{
		_properties:        map[string]*FooPropertyInfo{},
		_jsonPropertyMap:   map[string]*FooPropertyInfo{},
		_structPropertyMap: map[string]*FooPropertyInfo{},
		Test: &FooPropertyInfo{
			fieldName: "Test",
			jsonName:  "test",
			Encoder: func(src *Foo, dest *FooJSON) error {
				if src == nil {
					return nil
				}
				dest.Test = src.Test
				return nil
			},
			Decoder: func(src *FooJSON, dest *Foo) error {
				if src == nil {
					return nil
				}
				dest.Test = src.Test
				return nil
			},
		},
	}
	jb._structPropertyMap["Test"] = jb.Test
	jb._jsonPropertyMap["test"] = jb.Test
	return jb
}
NewFooJSONBuilder make new FooJSONBuilder.
package k
import (
	"encoding/json"
	o1 "github.com/favclip/jwg/misc/other/v1"
	o2 "github.com/favclip/jwg/misc/other/v2"
)
type FooJSON struct {
	Test *o1.Test `json:"test,omitempty"`
}
type FooJSONList []*FooJSON
type FooPropertyEncoder func(src *Foo, dest *FooJSON) error
type FooPropertyDecoder func(src *FooJSON, dest *Foo) error
type FooPropertyInfo struct {
	fieldName string
	jsonName  string
	Encoder   FooPropertyEncoder
	Decoder   FooPropertyDecoder
}
func (info *FooPropertyInfo) FieldName() string {
	return info.fieldName
}
func (info *FooPropertyInfo) JSONName() string {
	return info.jsonName
}
type FooJSONBuilder struct {
	_properties        map[string]*FooPropertyInfo
	_jsonPropertyMap   map[string]*FooPropertyInfo
	_structPropertyMap map[string]*FooPropertyInfo
	Test               *FooPropertyInfo
}