当前位置: 首页 > 面试题库 >

将字符串转换为json或struct

崔涵亮
2023-03-14
问题内容

我想得到一个表示像这样的json的字符串:

{“投票”:{“ option_A”:“ 3”}}

并在其中包含一个“计数”键, 这样结束:

{“投票”:{“ option_A”:“ 3”},“ count”:“ 1”}

这就是为什么我计划将其转换为json以便可以添加计数然后再次将其设置为字符串的原因。 问题是我不知道该json的结构
,所以我无法使用,json.Unmarshal(in, &myStruct)因为该结构有所不同。我怎样才能做到这一点?非常感谢你


问题答案:

您实际上只需要一个结构,如注释中所述,在字段上的正确注释将产生所需的结果。JSON并不是一种非常多种多样的数据格式,它定义明确,并且任何json片段,无论它多么复杂和令人困惑,都可以很容易地在模式和Go和对象中以100%的精度表示。其他大多数OO编程语言。这是一个例子。

package main

import (
    "fmt"
    "encoding/json"
)

type Data struct {
    Votes *Votes `json:"votes"`
    Count string `json:"count,omitempty"`
}

type Votes struct {
    OptionA string `json:"option_A"`
}

func main() {
    s := `{ "votes": { "option_A": "3" } }`
    data := &Data{
        Votes: &Votes{},
    }
    err := json.Unmarshal([]byte(s), data)
    fmt.Println(err)
    fmt.Println(data.Votes)
    s2, _ := json.Marshal(data)
    fmt.Println(string(s2))
    data.Count = "2"
    s3, _ := json.Marshal(data)
    fmt.Println(string(s3))
}

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

根据您最近的评论,您可以通过使用interface{}代表除计数之外的数据,使计数成为字符串并将其余的blob推入到,interface{}从而基本上可以接受任何内容,来解决这一问题。话虽这么说,Go是一种具有相当严格的类型系统的静态类型语言,但重申一下,您的声明“它可以是任何东西”是不正确的。JSON不能是任何东西。对于任何JSON片段,都有一个模式,一个模式可以定义JSON的许多变体。我建议您花一些时间来理解数据的结构,而不是将某些东西混在一起,因为它们是绝对无法定义的,并且对于知道自己正在做什么的人来说可能很容易。



 类似资料:
  • 我有一个RestController类,它有一个方法可以根据电影的标题搜索电影: 如果我发送一个json字符串 从邮递员到endpoint,我收到一个空白的回复。 然后我做了一个 就在进入方法后找到字符串filmSearch正是我从邮递员发送的JSON字符串。我的应用程序没有看到JSON和提取值从filmSearch在我的请求附加到应用程序内字符串filmSearch. 如果我移除 在请求映射的一

  • 问题内容: 我正在使用Java,并且有一个JSON字符串: 然后我的Java地图: 我想将来自JSONObject的所有数据存储在该HashMap中。 谁能为此提供代码?我想使用图书馆。 问题答案: 我几天前通过递归编写了这段代码。

  • 我使用的是Java,我有一个字符串是JSON: 我希望将JSONObject中的所有数据存储在HashMap中。 有人能为此提供代码吗?我想使用库。

  • 问题内容: 我在JS中有一个JSON对象,我想将其转换为字符串。这是功能吗? 提前致谢, 问题答案: JSON.stringify() 将值转换为JSON,如果指定了replacer函数,则可以选择替换值,如果指定了replacer数组,则可以选择仅包括指定的属性。

  • 问题内容: 将字符串表示形式转换为对象,但我要相反。对象要转换为JSON字符串,我有一个链接http://www.devcurry.com/2010/03/convert- javascript-object-to-json.html, 但是它需要json2.js jQuery是否具有本机功能方法来做到这一点? 问题答案: jQuery只会在调用本机浏览器方法之前进行一些正则表达式检查。如果不可用

  • 问题内容: 我具有来自Web服务的以下JSON字符串,并且正在尝试将其转换为 我在线上对此进行了验证,这似乎是正确的。现在我在android开发中使用以下代码来利用 这会引发异常和类型不匹配的异常。 问题答案: 在这里,您将获得JSONObject,因此请更改以下行: 具有以下内容: 之后