【问题标题】:Calling an API returns expected JSONArray, found JSONObject调用 API 返回预期的 JSONArray,找到 JSONObject
【发布时间】:2021-05-19 21:30:58
【问题描述】:

我正在从 Go 调用一个 API,并尝试将另一个 api 调用中的 json 字符串数据推送到其中。

我可以使用像这样的有效负载来手工制作调用

payload := strings.NewReader('[{"value1":333, "value2":444}]'

一切都很幸福。

我现在试图将其转换为将 json 字符串 {"value1":333, "value2":444} 作为字符串类型的输入参数到函数,但是当我尝试将其用作有效负载时, api 正在响应

预期类型:JSONArray,找到:JSONObject

我天真地尝试将函数的输入设置为 []string 并将数据作为输入附加到数组中,但随后 strings.NewReader 抱怨说它正在被提供一个数组......这是。

我不知道如何将 json 字符串转换为 api 会满意的 json 数组。

我尝试用 [] 将字符串括起来,但编译器抛出了错误的行终止符。

肯定是对字符串做错了什么,用 [] 将 {} 括起来让函数传递数据,但一定有比这更好的方法。

有什么想法,或者我是否让这变得比应该的更难?

【问题讨论】:

    标签: json api go


    【解决方案1】:

    你在正确的轨道上使用括号,但你实际上需要将字符附加到字符串。例如:

    str := `{"value1":333, "value2":444}`
    str = "[" + str + "]"
    // [{"value1":333, "value2":444}]
    

    https://play.golang.org/p/rWHCLDCAngd

    如果您在字符串或符文文字之外使用括号,则将其解析为 Go 语言语法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多