Go 实现读取分析【内存缓存】中的数据

目录

      • 函数一
      • 函数二
      • 返回JSON结构体的接口
      • 实现效果

函数一

读取执行脚本后暂存在内存中的JSON数据,返回Buffer缓冲器:

func cmd() bytes.Buffer {
	//test 是一个可执行文件,打印JSON数据
	cmd := exec.Command("/home/project/test","-j")
	var out bytes.Buffer
	cmd.Stdout = &out
	err := cmd.Run()
	if err != nil {
		fmt.Printf("Command finished with error: %v\n", err)
	}
	//cmd.Process.Release()
	return out
}

函数二

将字节数组转化为JSON数据:

type JsonStruct struct {
}

func NewJsonStruct() *JsonStruct {
	return &JsonStruct{}
}

func (jst *JsonStruct) Load(data []byte, v interface{}) {
	//读取的数据为非json格式,需要进行解码
	err := json.Unmarshal(data, v)
	if err != nil {
		return
	}
}

返回JSON结构体的接口

type Info struct {
	Name string `json:"name"`
	Sex bool `json:"sex"`
	Hobbies []string `json:"hobbies"`
}
func ReadCmd() (v *Info) {
	data := cmd()
	Load(data.Bytes(), &v)
	return v
}

实现效果

调用 ReadCmd 接口,即可实现读取、分析可执行文件输出到内存中的JSON数据

你可能感兴趣的:(Go)