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

如何解组具有不同值类型的json数组

汤念
2023-03-14
问题内容

例如:

{["NewYork",123]}

因为json数组被解码为go数组,并且go数组需要显式定义类型,所以我不知道如何处理它。


问题答案:

首先,json无效,对象必须具有键,因此它应该类似于{"key":["NewYork",123]}或just ["NewYork",123]

而当您处理多种随机类型时,只需使用即可interface{}

const j = `{"NYC": ["NewYork",123]}`

type UntypedJson map[string][]interface{}

func main() {
    ut := UntypedJson{}
    fmt.Println(json.Unmarshal([]byte(j), &ut))
    fmt.Printf("%#v", ut)
}

playground



 类似资料:
  • 问题内容: 如何使用Gson解析此JSON?我有一个具有多个对象类型的数组,但我不知道需要创建哪种对象来保存此结构。我无法更改json消息(我无法控制服务器)。 唯一起作用的类是 JSON消息 (请注意具有多个对象类型的数组。) 问题答案: 《 Gson用户指南》明确涵盖了以下内容: https://sites.google.com/site/gson/gson-user-guide#TOC-Se

  • 问题内容: 我有一个JSON 不同系列中的值是(“ rating”:0)或(“ rating”:“ 9.6747”)。 我正在使用Codable / Decodable协议解析JSON: 如果rating == String,则我的代码有效,并且我具有JSON中的所有变量,但是如果rating == Int,则全部为。我应该怎么做来解析所有类型变量一次和? 我的可解码功能: 谢谢。 问题答案: 您

  • 我有一些json数据,看起来像 解析器被“无法构造值的实例(不存在创建者,如默认构造)”所阻塞:没有双精度/双参数构造函数/工厂方法从数字值反序列化(1.572553780732E9)” 我的数据类看起来像:

  • 问题内容: 只要我有键值对,解组就非常简单了,但是我将如何以不同的顺序解组不同类型的数组呢?单个元素定义明确且已知,但顺序不明确。 我无法提出一个漂亮的解决方案。 我会尝试对所有元素进行错误处理吗?是否有某种工会类型可以为我做到这一点? 游乐场版 问题答案: Go官方博客上有一篇不错的文章:JSON和GO。可以将“任意数据解码”到接口{}中,并使用类型断言来动态确定类型。 您的代码可能可以修改为:

  • 问题内容: 我想解析一个json文件,但它经过这样的事情: 但是大约有三千个这样的对象。我一直在使用Gson解析我的json对象,但是我怎么解析这种文件呢?以及如何检索名称“ CDG”或“ ORY”? 问题答案: 您可以尝试如下操作: 使用gson,您可以按以下方式检索键名: 并使用java- json 可以执行以下操作: 从网址获取json:

  • 问题内容: 在我们的应用程序中有一个相当普遍的模式。我们在Xml中配置一组配置对象(或列表)的对象,它们全部实现一个公共接口。在启动时,应用程序读取Xml并使用JAXB创建/配置对象列表。我从来没有想过(多次阅读各种文章之后)仅使用JAXB的“正确方法”。 例如,我们有一个interface ,以及多个具体的实现类,它们具有一些共同的属性,一些不同的属性以及非常不同的行为。我们用来配置应用程序使用