Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > go转化php数组

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

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

您可能感兴趣的文章:
阅读全文