| 257 | } |
| 258 | |
| 259 | func (v *Visitor) classObject2Map(classObject *stack.ClassObject) map[string]interface{} { |
| 260 | data := make(map[string]interface{}) |
| 261 | for variable, val := range classObject.AllField() { |
| 262 | switch val.(type) { |
| 263 | case *stack.ClassObject: |
| 264 | // class 包含 class 的情况 |
| 265 | classObject := val.(*stack.ClassObject) |
| 266 | classObject2Map := v.classObject2Map(classObject) |
| 267 | data[variable.GetName()] = classObject2Map |
| 268 | default: |
| 269 | data[variable.GetName()] = val |
| 270 | } |
| 271 | |
| 272 | } |
| 273 | return data |
| 274 | } |
| 275 | |
| 276 | func JSONGet(v *Visitor, ctx *parser.FunctionCallContext) interface{} { |
| 277 | paramValues := v.buildParamValues(ctx) |