Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从GoLang中单独的[]字节结果创建JSON数组_Arrays_Json_Go_Tiedot - Fatal编程技术网

Arrays 从GoLang中单独的[]字节结果创建JSON数组

Arrays 从GoLang中单独的[]字节结果创建JSON数组,arrays,json,go,tiedot,Arrays,Json,Go,Tiedot,我有一个来自查询的结果循环 最基本的形式是这样的: col.ForEachDoc(func(id int, docContent []byte) (willMoveOn bool) { return true return false }) 我可以通过管道将这些结果发送到客户端,但一次只能发送一个。不完全是我想要的 我还可以使用JSON.Unmarshal创建单个JSON对象,但如何将它们组合成一个大型JSON数组 非常感谢。新的开始 如果您直接将其返回给客户端,并且您的doc

我有一个来自查询的结果循环

最基本的形式是这样的:

col.ForEachDoc(func(id int, docContent []byte) (willMoveOn bool) {
    return true
    return false
})
我可以通过管道将这些结果发送到客户端,但一次只能发送一个。不完全是我想要的

我还可以使用JSON.Unmarshal创建单个JSON对象,但如何将它们组合成一个大型JSON数组


非常感谢。新的开始

如果您直接将其返回给客户端,并且您的
docContent
是JSON,那么您可以手动构造数组语法。如果
docContent
不是有效的json,则不会提供任何安全性

a := [][]byte{}

col.ForEachDoc(func(id int, docContent []byte) (willMoveOn bool) {
     a = append(a, docContent)
     return true
})
b := bytes.Join(a, []byte(`,`))

// insert '[' to the front
b = append(b, 0)
copy(b[1:], b[0:])
b[0] = byte('[')

// append ']'
b = append(b, ']')
您还可以解组,然后附加到切片,然后封送该切片

s := []interface{}{}
col.ForEachDoc(func(id int, docContent []byte) (willMoveOn bool) {
     var j interface{}
     if err := json.Unmarshal(docContent, &j); err != nil {
          // handle error
     }
     s = append(s, j)
     return true
})

b, err := json.Marshal(j)

对于JSON数组,您的意思有点不清楚。您是指可以索引的数组,其中每个元素都是一个字典,还是指文本json表示?