go-scopes/forge/rep/json.go

35 lines
516 B
Go

package rep
import (
"encoding/json"
"fmt"
)
func ParseJson(inp string) coderep {
var raw interface{}
err := json.Unmarshal([]byte(inp), &raw)
if err != nil {
fmt.Println(err)
return nil
}
rep := prepare(raw)
return rep
}
func prepare(raw interface{}) coderep {
switch ri := raw.(type) {
case []interface{}:
c := code{}
for _, it := range ri {
c = append(c, it)
}
return c
case map[string]interface{}:
m := module{}
for k, v := range ri {
m[k] = v
}
return m
}
return nil
}