小编Har*_*rdy的帖子

在 golang 中更新 Jsonb 列

我正在尝试更新特定行的 Jsonb 列值。我运行了查询

UPDATE instruction.file SET "details" = (jsonb_set("details",'{"UploadBy"}','"test@test.com"'::jsonb, true)) WHERE id=820;
Run Code Online (Sandbox Code Playgroud)

这在 pgAdmin3 中工作正常。

当我试图在我的 Go 代码中做同样的事情时。我收到错误:“pq:json 类型的输入语法无效”

我的代码:

func main() {
    uname := "test@test.com"

    err := Init() //Db init
    if err != nil {
        fmt.Println("Error", err)
        return
    }

    result, err1 := Db.Exec("UPDATE instruction.file SET \"details\" = (jsonb_set(\"details\",'{\"UploadBy\"}',$1::jsonb, true)) WHERE id=$2", uname, "820")
    if err1 != nil {
        fmt.Println("Error", err1)
        return
    }
    n, err1 := result.RowsAffected()
    if err1 != nil {
        fmt.Println("Error", err1)
        return
    }

    if n != 1 …
Run Code Online (Sandbox Code Playgroud)

postgresql go

5
推荐指数
1
解决办法
2776
查看次数

类型转换在内部如何工作?相同的内存利用率是多少?

Go类型转换在内部如何工作?

类型转换的内存利用率是多少?例如:

var str1 string
str1 = "26MB string data"
byt := []byte(str1)
str2 := string(byt)
Run Code Online (Sandbox Code Playgroud)

每当我键入转换任何变量时,它将消耗更多的内存吗?

我对此很担心,因为当我尝试解组时,会出现“ 致命错误:运行时:内存不足

err = json.Unmarshal([]byte(str1), &obj)
Run Code Online (Sandbox Code Playgroud)

str1值来自HTTP响应,但使用ioutils.ReadAll读取,因此它包含完整的响应。

string type-conversion go slice

4
推荐指数
1
解决办法
634
查看次数

将"\n"嵌入到字符串文字中时出错

我需要解码其中包含"\n"的JSON字符串:

[
    {"Name":"Neo", "Message":"Hi\n:Hello everyone"},
    {"Name":"Sam","Messsage":"Hello\nEveery\nOne"}
]
Run Code Online (Sandbox Code Playgroud)

我使用下面的Golang代码:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Messages  []string     `json:"Name,omitempty"`
}

func main() {
s := "[{\"Name\":\"Neo\", \"Message\":\"Hi\n:Hello everyone\"},   {\"Name\":\"Sam\",\"Messsage\":\"Hello\nEveery\nOne\"}]"
var pro Person
err := json.Unmarshal([]byte(s), &pro)
if err == nil {
fmt.Printf("%+v\n", pro)
} else {
fmt.Println(err)
fmt.Printf("%+v\n", err)
}
}
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

ERROR invalid character '\n' in string literal
Run Code Online (Sandbox Code Playgroud)

go

2
推荐指数
1
解决办法
9078
查看次数

标签 统计

go ×3

postgresql ×1

slice ×1

string ×1

type-conversion ×1