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数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • golang实现sql结果集以json格式输出的方法

    golang实现sql结果集以json格式输出的方法

    这篇文章主要介绍了golang实现sql结果集以json格式输出的方法,涉及Go语言针对sql结果集的遍历、转换及json格式相关操作技巧,需要的朋友可以参考下
    2017-03-03
  • Gin的中间件执行流程与用法详解

    Gin的中间件执行流程与用法详解

    我们在使用Gin框架进行Web开发的时候,基本上都会遇到登录拦截的场景,在Gin当中, 中间件和业务处理函数都是一样的类型,都是一种函数,本文给大家介绍了Gin的中间件执行流程与用法,需要的朋友可以参考下
    2024-04-04
  • Golang 统计字符串中数字字母数量的实现方法

    Golang 统计字符串中数字字母数量的实现方法

    这篇文章主要介绍了Golang 统计字符串中数字字母数量,本文给出了两种从字符串获取数字与字母数量的方法,分别是ASCII 码值和正则表达式,需要的朋友可以参考下
    2022-06-06
  • Golang websocket协议使用浅析

    Golang websocket协议使用浅析

    这篇文章主要介绍了Golang websocket协议的使用,WebSocket是一种新型的网络通信协议,可以在Web应用程序中实现双向通信,感兴趣想要详细了解可以参考下文
    2023-05-05
  • 使用golang实现一个MapReduce的示例代码

    使用golang实现一个MapReduce的示例代码

    这篇文章主要给大家介绍了关于如何使用golang实现一个MapReduce,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • Golang 中 omitempty的作用

    Golang 中 omitempty的作用

    这篇文章主要介绍了Golang 中 omitempty的作用,文章围绕主题展开详细的内容介绍,具有一定的参考一下,需要的小伙伴可以参考一下
    2022-07-07
  • mayfly-go部署和使用详解

    mayfly-go部署和使用详解

    这篇文章主要介绍了mayfly-go部署和使用详解,此处部署基于CentOS7.4部署,结合实例代码图文给大家讲解的非常详细,需要的朋友可以参考下
    2022-09-09
  • Go语言学习教程之声明语法(译)

    Go语言学习教程之声明语法(译)

    Golang 就是类C的语法,下面这篇文章主要给大家介绍了关于Go语言学习教程之声明语法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-11-11
  • Go高级特性之并发处理http详解

    Go高级特性之并发处理http详解

    Golang 作为一种高效的编程语言,提供了多种方法来实现并发发送 HTTP 请求,本文将深入探讨 Golang 中并发发送 HTTP 请求的最佳技术和实践,希望对大家有所帮助
    2024-02-02
  • 使用go实现常见的数据结构

    使用go实现常见的数据结构

    这篇文章主要介绍了使用go实现常见的数据结构,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论