/** * parse json raw data * * @return error */ func (j *Json) parseJson() error { if 0 < j.analyzedBuf.Len() { return nil } if nil == j.rawdata { return errors.New("Json raw data nil, can not be analyzed") } err := marshal(reflect.ValueOf(j.rawdata), j.nullTag, j.boolTag, &j.analyzedBuf) return err }
/** * parse json bytes data * * @param `v` handle object struct or map or slice * @param `nullTag` nil tag, field or data is nil replace * e.g.: * default "" - 如果空字符串不会将(空数据)字段或key添加到json解析的数据中 * "null" - 空数据解析: {"Key":null} * "nil" - 空数据解析: {"Key":nil} * @param `boolTag` bool tag * e.g.: * default "" - {"KeyBool":trye|false} * "YES|NO" - {"KeyBool":YES|NO} * "1|0" - {"KeyBool":1|0} * @return []byte * @return error */ func Marshal(v interface{}, nullTag, boolTag string) ([]byte, error) { var buf bytes.Buffer err := marshal(reflect.ValueOf(v), nullTag, boolTag, &buf) return buf.Bytes(), err }