使用自定义类型解析 golang 中的 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 数组的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

详解Java中JSON数组的排序和过滤操作在Java开发中,处理JSON数据是一项常见的任务。JSON数组作为其中一种常用的数据结构,在实际应用中经常需要进行排序和过滤操作。本文将详细介绍Java中JSON数组的排序和过滤操作,并提供相应的代码示例。一、JSON数组的排序操作使用JSONArray对象存储JSON数组在Java中,使用json库处理JSON数

快速上手:Java中的JSON数组合并和拆分技巧在现代的软件开发中,数据的格式和传输变得愈发重要。其中,JSON(JavaScriptObjectNotation)是一种常用的数据格式,特别适用于前后端交互和数据存储。在Java开发中,我们经常需要处理JSON对象和JSON数组。本文将介绍如何在Java中合并和拆分JSON数组,以及实现这些操作的技巧和示

JSON可以用作数据交换格式,它是轻量级的且与语言无关。一个JSONArray可以解析文本字符串以生成类似于向量的对象,并支持java.util.List接口。我们可以使用org.json.CDL类将JSON数组转换为CSV格式,它提供了一个静态方法toString(),用于将JSONArray转换为逗号分隔的文本。我们需要导入org.apache.commons.io.FileUtils包,以使用writeStringToFile()方法将数据存储在CSV文件中。语法publicstaticj

一个JSON 是一种轻量级的 数据交换格式,JSON的格式是 键值对。JSONArray 可以解析文本从一个字符串生成一个类似向量的对象并支持java.util.List接口。我们可以使用org.json.simple.JSONArray类在Java中合并两个JSON数组。我们可以使用addAll() 方法(从接口 java.util.List继承)在下面的程序中合并两个JSON数组。示例

入门级指南:Java中操作JSON数组的常见问题解答摘要:随着互联网的发展,JSON(JavaScriptObjectNotation)成为了数据交换的常用格式。在Java开发中,操作JSON数组是一项常见的任务。本文将解答Java开发中操作JSON数组的常见问题,并提供代码示例。如何创建一个JSON数组?在Java中,可以使用第三方库如JSON-jav

JAVA中如何解析和遍历JSON数组?掌握JSON数组处理技巧。随着现代互联网的快速发展,JSON(JavaScriptObjectNotation)已经成为了一种常用的数据交换格式。它简洁、易读,非常适合用于Web开发和API接口的数据传输。在JAVA中,解析和遍历JSON数组是非常常见的操作。本篇文章将介绍如何使用JAVA解析JSON数组,并给出相应

Gson库提供了一个名为com.google.gson.reflect.TypeToken的类来存储泛型类型,通过创建一个GsonTypeToken类并传递类类型。使用这个类型,Gson可以知道在泛型类中传递的类。语法publicclassTypeToken<T>extendsObject我们可以在下面的示例中将JSON数组反序列化为通用类型的列表示例importjava.lang.reflect.Type;importjava.util.*;importcom.go

MySQL数据合并主要通过GROUP_CONCAT函数和JSON函数实现。1.使用GROUP_CONCAT函数将多条记录连接成字符串,通过ORDERBY和SEPARATOR控制顺序和分隔符,GROUPBY指定分组依据;2.对于复杂数据结构(如JSON),使用JSON_ARRAYAGG函数将多个JSON对象合并成JSON数组,需要MySQL5.7或更高版本支持。选择方法取决于数据结构和复杂度,需注意GROUP_CONCAT长度限制,并根据实际情况选择最优方案。
