gpt4 book ai didi

json - 进行JSON噩梦-是否有一个简单的[POSH] ConvertFrom-Json等效项?

转载 作者:行者123 更新时间:2023-12-01 22:33:50 25 4
gpt4 key购买 nike

在powershell中,如果我进行REST调用并收到任何类型的json响应,则可以轻松地将$json | ConvertFrom-Json转换为适当的对象,以便可以进行修改,呈现特定的值。
似乎在Go中,我必须定义struct或使用map[string]interface{}进行“动态”转换。struct的问题在于,我正在为一个平台编写一个rest处理程序,该平台根据端点提供与大多数REST API一样完全不同的JSON响应。我不想为所有数十种可能的响应定义structmap[string]interface{}的问题在于,它会通过生成带有一堆荒谬的“map”前缀和多余的[括号]的字符串来污染数据。

ala: [map[current_user_role:admin id:1]]
有没有办法像这样转换JSON响应:
{
"current_user_role": "admin",
"id": 1
}
返回基本:
current_user_role: admin
id: 1
...没有定义 struct吗?

最佳答案

如果您不想指定所接收数据的结构,那么使用 map 的方法是正确的。您不喜欢fmt.Println的输出方式,但是我怀疑您将输出格式与数据表示混淆了。以您认为可接受的格式打印出来需要花费几行代码,并且不如在python或powershell中那样方便,您可能会觉得烦。
这是一个工作示例(playground link):

package main

import (
"encoding/json"
"fmt"
"log"
)

var data = []byte(`{
"current_user_role": "admin",
"id": 1
}`)

func main() {
var a map[string]interface{}
if err := json.Unmarshal(data, &a); err != nil {
log.Fatal(err)
}
for k, v := range a {
fmt.Printf("%s: %v\n", k, v)
}
}

关于json - 进行JSON噩梦-是否有一个简单的[POSH] ConvertFrom-Json等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62808753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com