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中使用jwt的教程详解

    在Go中使用jwt的教程详解

    JWT (JSON Web Tokens) 是一种基于 JSON 格式的轻量级身份验证和授权方案,用于在各方之间以JSON方式安全地传输信息,本文给大家详细介绍了在Go中使用jwt的教程,文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-06-06
  • Go自定义数据序列化的流程详解

    Go自定义数据序列化的流程详解

    在Go语言中,自定义数据的序列化是一个常见的需求,本文将深入探讨 Go 语言中自定义数据序列化的流程,包括关键概念、技巧和最佳实践,旨在帮助开发者更高效地进行数据序列化工作,需要的朋友可以参考下
    2024-06-06
  • Golang解析JSON遇到的坑及解决方法

    Golang解析JSON遇到的坑及解决方法

    这篇文章主要为大家介绍了Golang解析JSON时会遇到的一些坑及解决方法,文中的示例代码讲解详细,对我们学习Go语言有一点的帮助,需要的可以参考一下
    2023-02-02
  • Go1.18都出泛型了速来围观

    Go1.18都出泛型了速来围观

    泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型,本文通过例子给大家介绍下如何使用泛型,对Go1.18泛型相关知识感兴趣的朋友一起看看吧
    2022-03-03
  • Golang实现心跳机制的示例详解

    Golang实现心跳机制的示例详解

    这篇文章主要为大家详细介绍了Golang实现心跳机制的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-04-04
  • golang下的viper包的简单使用方式

    golang下的viper包的简单使用方式

    这篇文章主要介绍了golang下的viper包的简单使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • go语言中fallthrough的用法说明

    go语言中fallthrough的用法说明

    这篇文章主要介绍了go语言中fallthrough的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • Go singleflight使用以及原理

    Go singleflight使用以及原理

    singleflight官方解释其为:singleflight提供了一个重复的函数调用抑制机制。通俗的解释其作用是,若有多个协程运行某函数时,只让一个协程去处理,然后批量返回。非常适合来做并发控制。常见用于缓存穿透的情况
    2023-01-01
  • 使用Go语言实现跨域资源共享(CORS)设置

    使用Go语言实现跨域资源共享(CORS)设置

    在Web开发中,跨域资源共享(CORS)是一种重要的安全机制,它允许许多资源在一个网页上被另一个来源的网页所访问,然而,出于安全考虑,浏览器默认禁止这种跨域访问,为了解决这个问题,我们可以使用Go语言来设置CORS,需要的朋友可以参考下
    2024-06-06
  • Go语言中循环Loop的用法介绍

    Go语言中循环Loop的用法介绍

    这篇文章介绍了Go语言中循环Loop的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论