admin 管理员组

文章数量: 1184232


2024年3月29日发(作者:matlab读取php文件)

golang中结构体与json

在Go语言中,结构体(struct)是一种自定义的数据类型,用于表

示一组相关的数据字段。结构体可以包含不同类型的数据字段,包括基本

类型、数组、切片、映射和其他结构体等。同时,Go语言还提供了一种

方便的方式来将结构体与JSON数据进行转换。

下面是一个示例的结构体定义:

```go

type Person struct

Name string `json:"name"`

Age int `json:"age"`

Gender string `json:"gender,omitempty"`

```

当使用`l`函数将结构体转换为JSON数据时,会使用结

构体字段的值进行转换。而当使用`hal`函数将JSON数据转

换为结构体时,会将JSON数据中的字段值赋给对应的结构体字段。

下面是一个示例代码,演示了结构体与JSON之间的转换:

```go

package main

import

"encoding/json"

"fmt"

type Person struct

Name string `json:"name"`

Age int `json:"age"`

Gender string `json:"gender,omitempty"`

func mai

//结构体转换为JSON

person := Person{Name: "Alice", Age: 25}

jsonData, _ := l(person)

n(string(jsonData)) // 输出:

{"name":"Alice","age":25}

//JSON转换为结构体

jsonStr := `{"name":"Bob","age":30,"gender":"male"}`

var newPerson Person

hal([]byte(jsonStr), &newPerson)

n(newPerson) // 输出: {Bob 30 male}

```

在这个示例中,首先创建了一个`Person`结构体对象`person`,然后

使用`l`函数将其转换为JSON数据,并通过`n`函

数输出转换后的JSON字符串。

接着,定义了一个JSON字符串`jsonStr`,其中包含了`name`、

`age`和`gender`字段的值。然后使用`hal`函数将JSON字符

串转换为结构体,并赋值给`newPerson`变量。最后,通过`n`

函数输出转换后的结构体。

需要注意的是,当JSON数据中的字段在结构体中找不到对应的字段

时,转换过程会忽略该字段。例如,在上面的示例中,`newPerson`结构

体没有定义`gender`字段,因此在转换时忽略了JSON数据中的`gender`

字段。


本文标签: 结构 转换 函数 字段 数据