Go语言转化php数组的示例代码

 更新时间:2023年11月01日 10:52:19   作者:lxw1844912514  
这篇文章主要为大家详细介绍了Go语言如何实现转化php数组的相关知识,文中的示例代码讲解详细,对我们深入学习GO语言有一定的帮助,需要的可以参考下

php程序

$str = <<<EOF
{"操作源":"任意","数据库":"任意","语句类型":"CREATE DATABASE;DROP DATABASE;ALTER DATABASE","影响行数":"不涉及","告警阈值":"执行1次"}
EOF;
$data = [
    'title' => '标题',
    'list' => $str
];
$const = ['operate_account' => '操作源', 'db_name' => '数据库', 'sql_type' => '语句类型', 'rows' => '影响行数', 'alarm_line' => '告警阈值'];
$data['list'] = json_decode($data['list'], 320);
 
$newArr2['title']=$data['title'];
foreach ($data['list'] as $key => $v) {
    $newArr2['content'][array_search($key,$const)]= $v;
}
 
dd($data);
dd($newArr2);
 
 
function dd($param)
{
    echo "<pre>";
    print_r($param);
    echo "<pre>";
}

转化go语言

package main
 
import (
	"encoding/json"
	"github.com/gin-gonic/gin"
)
 
type Data struct {
	Title   string            `json:"title"`
	Content map[string]string `json:"content"`
}
 
func main() {
	r := gin.Default()
 
	// 多行JSON字符串
	jsonStr := `{
        "操作源": "任意",
        "数据库": "任意",
        "语句类型": "CREATE DATABASE;DROP DATABASE;ALTER DATABASE",
        "影响行数": "不涉及",
        "告警阈值": "执行1次"
    }`
 
	// 转化为Go结构体
	var data map[string]interface{}
	if err := json.Unmarshal([]byte(jsonStr), &data); err != nil {
		panic("无法解析JSON数据")
	}
 
	// 定义常量映射
	constMap := map[string]string{
		"操作源":  "operate_account",
		"数据库":  "db_name",
		"语句类型": "sql_type",
		"影响行数": "rows",
		"告警阈值": "alarm_line",
	}
 
	// 创建新的数据结构
	var newArr2 Data
	newArr2.Title = "标题"
 
	// 创建内容的映射
	newArr2.Content = make(map[string]string)
 
	// 遍历data中的数据
	for key, value := range data {
		// 查找映射关系
		mappedKey, exists := constMap[key]
 
		//fmt.Println(key, value, exists, constMap["数据库"], mappedKey)
		//os.Exit(2232)
 
		if exists {
			newArr2.Content[mappedKey] = value.(string)
		}
	}
 
	r.GET("/data", func(c *gin.Context) {
		c.JSON(200, newArr2)
	})
 
	r.Run(":8081")
}

转化结果:

到此这篇关于Go语言转化php数组的示例代码的文章就介绍到这了,更多相关go转化php数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Go 实现百万WebSocket连接的方法示例

    Go 实现百万WebSocket连接的方法示例

    这篇文章主要介绍了Go 实现百万WebSocket连接的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Go语言处理超大字符串型整数加减经典面试详解

    Go语言处理超大字符串型整数加减经典面试详解

    这篇文章主要为大家介绍了Go语言处理超大字符串型整数加减经典面试示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Golang map实践及实现原理解析

    Golang map实践及实现原理解析

    这篇文章主要介绍了Golang map实践以及实现原理,Go 语言中,通过哈希查找表实现 map,用链表法解决哈希冲突,本文结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2022-06-06
  • Golang cron 定时器和定时任务的使用场景

    Golang cron 定时器和定时任务的使用场景

    Ticker是一个周期触发定时的计时器,它会按照一个时间间隔往channel发送系统当前时间,而channel的接收者可以以固定的时间间隔从channel中读取事件,这篇文章主要介绍了Golang cron 定时器和定时任务,需要的朋友可以参考下
    2022-09-09
  • 重学Go语言之数组的具体使用详解

    重学Go语言之数组的具体使用详解

    Go的数组是一种复合数据类型,在平时开发中并不常用,更常用的是切片(slice),可以把切片看作是能动态扩容的数组,切片的底层数据结构就是数组,所以数组虽不常用,但仍然有必要掌握
    2023-02-02
  • GO语言基本类型分析

    GO语言基本类型分析

    这篇文章主要介绍了GO语言基本类型,较为详细的分析了整形、浮点型、字符串、指针等类型的具体用法,是深入学习GO语言所必须掌握的重要基础,需要的朋友可以参考下
    2014-12-12
  • Linux中Go环境配置和GoModule常用操作

    Linux中Go环境配置和GoModule常用操作

    这篇文章主要介绍了Linux中Go环境配置和GoModule,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • Golang strings包常用字符串操作函数

    Golang strings包常用字符串操作函数

    Golang 中的字符串统一使用 UTF-8 (属于Unicode编码的一种实现方式)进行编码,本篇文章将结合具体实例对常用的字符串操作函数进行介绍,感兴趣的可以了解一下
    2021-12-12
  • Golang变量直接初始化的方法详解

    Golang变量直接初始化的方法详解

    在 Go 语言中,我们常用的数据结构有在Go语言中,你可以初始化不同的数据结构,例如数组、切片、结构体、指针、map等,本文将给大家介绍一下Golang变量直接初始化的方法,需要的朋友可以参考下
    2023-08-08
  • Golang中生成随机字符串并复制到粘贴板的方法

    Golang中生成随机字符串并复制到粘贴板的方法

    这篇文章主要介绍了Golang中生成随机字符串并复制到粘贴板的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论