github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/types/jsonconcat/unmarshal.go (about)

     1  package jsonconcat
     2  
     3  import (
     4  	"github.com/lmorg/murex/debug"
     5  	"github.com/lmorg/murex/lang"
     6  	"github.com/lmorg/murex/utils/json"
     7  )
     8  
     9  func unmarshal(p *lang.Process) (interface{}, error) {
    10  	b, err := p.Stdin.ReadAll()
    11  	if err != nil {
    12  		return nil, err
    13  	}
    14  
    15  	var jsonc []interface{}
    16  	var i int
    17  
    18  	cb := func(j []byte) {
    19  		var v interface{}
    20  		err = json.Unmarshal(j, &v)
    21  		debug.Json(string(j), v)
    22  		jsonc = append(jsonc, v)
    23  		i++
    24  	}
    25  
    26  	pErr := parse(b, cb)
    27  	if err != nil {
    28  		return nil, err
    29  	}
    30  	if pErr != nil {
    31  		return nil, pErr
    32  	}
    33  
    34  	return jsonc, nil
    35  }