iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >使用自定义类型解析 golang 中的 JSON 数组
  • 248
分享到

使用自定义类型解析 golang 中的 JSON 数组

json数组 2024-02-09 10:02:13 248人浏览 泡泡鱼
摘要

PHP小编百草为你带来了一篇关于解析golang中的JSON数组的文章。在Golang中,我们可以使用自定义类型来解析复杂的jsON数组。这种方法不仅能够更好地理解和处理JSON数据,

PHP小编百草为你带来了一篇关于解析golang中的JSON数组的文章。在Golang中,我们可以使用自定义类型来解析复杂的jsON数组。这种方法不仅能够更好地理解和处理JSON数据,还能提供更灵活的操作方式。本文将详细介绍如何使用自定义类型解析JSON数组,并给出一些实用的示例代码,帮助你更好地理解和运用这一技巧。无论你是初学者还是有一定经验的开发者,都能从本文中受益匪浅,快来一起探索吧!

问题内容

我正在尝试在 golang 中解析一个 json 数组,格式如下:

2牛肉840f8f9d8bb724c7736cb14989

例如,json 应该包含不同表的模式。 我已尝试以下代码,但架构返回空:

package main

import (
    "encoding/json"
    "io"
    "log"
    "os"
)

type ColumnType struct {
    Name  string `json:"name"`
    Type  string `json:"type"`
}

type Schema struct {
    Schema map[string][]ColumnType
}

func main() {

    mocksSchemas, _ := os.Open("parse_config/mock_schema.json")

    var schemas []Schema
    content, err := io.ReadAll(mocksSchemas)
    if err != nil {
        log.Fatal("Error when reading mock file: ", err)
    }
    err = json.Unmarshal(content, &schemas)
    if err != nil {
        log.Fatal("Error during Unmarshal(): ", err)
    }

    defer mocksSchemas.Close()
}

我做错了什么?如果您能指出我的错误,我将不胜感激 谢谢!

解决方法

要匹配源/目标 JSON,您可以使用以下类型:

type Schema map[string][]ColumnType

或者,您也可以使用更易于使用的东西:

type Schema struct {
    Table   string
    Columns []ColumnType
}

func (s Schema) MarshalJSON() ([]byte, error) {
    return json.Marshal(map[string][]ColumnType{
        s.Table: s.Columns,
    })
}

func (s *Schema) UnmarshalJSON(data []byte) error {
    var m map[string][]ColumnType
    if err := json.Unmarshal(data, &m); err != nil {
        return err
    }
    for k, v := range m {
        s.Table = k
        s.Columns = v
        break
    }
    return nil
}

以上就是使用自定义类型解析 golang 中的 JSON 数组的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 使用自定义类型解析 golang 中的 JSON 数组

本文链接: https://www.lsjlt.com/news/562409.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用自定义类型解析 golang 中的 JSON 数组
    php小编百草为你带来了一篇关于解析golang中的JSON数组的文章。在golang中,我们可以使用自定义类型来解析复杂的JSON数组。这种方法不仅能够更好地理解和处理JSON数据,...
    99+
    2024-02-09
    json数组
  • HCL 解组自定义类型
    一分耕耘,一分收获!既然都打开这篇《HCL 解组自定义类型》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会...
    99+
    2024-04-05
  • 自定义golang函数错误类型
    是的,在 go 中可以定义自定义错误类型,通过创建实现 error 接口的结构体,并提供 error() 方法返回错误消息。自定义错误类型可以使用 errors.new 函数或自定义类型...
    99+
    2024-05-02
    golang 函数类型 关键词
  • 如何在 Golang 中使用自定义错误类型?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • typeScript中数组类型定义及应用详解
    目录1.定义数组1.1 「类型 + 方括号」表示法1.2 数组泛型1.3 用接口表示数组1.4 类数组2. any 在数组中的应用 ...
    99+
    2023-05-19
    ts数据类型 ts 定义数组 ts定义数组对象
  • C语言自定义类型全解析
    目录前言结构体类型结构体的声明结构体变量的定义与初始化结构体的自引用结构体的访问结构体的传参传结构体传地址结构体的内存对齐(强烈建议观看)位段位段的声明位段的内存管理位段的跨平台性 ...
    99+
    2024-04-02
  • 怎么在Golang中转换自定义类型
    怎么在Golang中转换自定义类型?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。golang适合做什么golang可以做服务器端开发,但golang很适合做日志...
    99+
    2023-06-06
  • 在Golang中实现自定义错误类型
    在 go 中创建自定义错误类型可提供更详细的错误消息。创建自定义错误类型:用 error 接口定义错误类型,实现 error() 方法返回错误消息。使用自定义错误类型:像使用任何其他错误...
    99+
    2024-04-15
    golang 关键词
  • Golang中的数组怎么定义和使用
    这篇文章主要介绍“Golang中的数组怎么定义和使用”,在日常操作中,相信很多人在Golang中的数组怎么定义和使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang中的数组怎么定义和使用”的疑惑有所...
    99+
    2023-07-04
  • Go语言中GORM存取数组/自定义类型数据
    目录GORM存取数组类型数据一、GORM的自定义类型1. Scanner/Valuer接口2. 数组变量3. 测试二、实际生产​总结GORM存取数组类型数据 在GORM不支持数组类型...
    99+
    2023-01-17
    Gorm 数组字段处理 gorm 数组 gorm 自定义类型
  • 无法使用 vscode 解析自己定义的 golang 包
    今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《无法使用 vscode 解析自己定义的 golang 包》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建...
    99+
    2024-04-05
  • 易语言如何自定义数据类型数组
    在易语言中,可以通过使用结构体来自定义数据类型数组。首先,需要创建一个结构体,定义数组的元素类型和个数。例如,如果想要创建一个包含整...
    99+
    2023-08-17
    易语言
  • C语言深入了解自定义数据类型的使用
    目录一、自定义数据类型(上)二、自定义数据类型(中)​​​​​三、自定义数据类型(下)​​​​​一、自定义数据类型(上) 类型命名关键字 (typedef) C语言中可以对类型赋予新...
    99+
    2024-04-02
  • java中怎么定义json格式数据类型
    在Java中,可以使用第三方库如Jackson、Gson等来操作JSON格式数据类型。使用Jackson库,可以先创建一个Java类...
    99+
    2023-09-27
    java json
  • 解组自定义字节类型返回零值
    有志者,事竟成!如果你在学习Golang,那么本文《解组自定义字节类型返回零值》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~问题内容我...
    99+
    2024-04-04
  • C++中的自定义函数返回类型
    目录C++自定义函数返回类型知识点小结C++函数返回值是自定义类型情况1 返回值是自定义类的非引用类型2 返回值是自定义类的引用类型C++自定义函数返回类型 知识点小结 C++的基本...
    99+
    2022-11-13
    C++自定义函数 自定义函数返回类型 C++函数返回类型
  • C语言中自定义类型详解
    目录结构大小offsetof结构体对齐规则存在原因总结结构大小 我们先随便给出一个结构体,为了计算他的大小,我给出完整的打印方案: typedef struct num { cha...
    99+
    2024-04-02
  • Java中的BaseTypeHandler自定义类型转换器的使用
    目录简述通用的类型转换器(存在一些问题)定制类型转换器简述 mysq5.7之后新增了json类型,但是在使用的过程中,Json数组中的值小于Integer.MAX_VALUE,则反序...
    99+
    2024-04-02
  • Java详解数据类型的定义与使用
    目录标识符和关键字标识符什么是标识符标识符的定义规则关键字常量和变量常量变量变量的声明格式变量的声明基本数据类型整数类型浮点类型浮点类型常量浮点类型变量字符类型字符型字符串型布尔类型...
    99+
    2024-04-02
  • Go语言中类型别名和自定义类型的示例分析
    这篇文章主要介绍Go语言中类型别名和自定义类型的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Go语言中没有类的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作