package main
import (
"encoding/json"
"fmt"
)
func main() {
// 生成map格式字符串
ma1 := make(map[string]interface{})
ma2 := make(map[string]interface{})
ma3 := make(map[string]interface{})
ma4 := make(map[string]interface{})
ma1["a1"] = ma2
ma1["a2"] = 3
ma1["a3"] = 4
ma2["b1"] = 22
ma2["b2"] = 33
ma2["b3"] = []int{1,2,3}
ma2["b4"] = ma3
ma3["c1"] = 55
ma3["c3"] = 88
ma4["d1"] = 66
ma4["d2"] = 77
ma3["c2"] = ma4
// 将map格式字符串转化为json
mjson,_ :=json.Marshal(ma1)
fmt.Println(string(mjson))
fmt.Println("-----------------------------------")
var k string
var s string
map3:= make(map[string]interface{})
err := json.Unmarshal(mjson, &map3)
if err != nil {
fmt.Println(err)
}
s = jsonToKV(k,s,map3)
fmt.Println(s)
}
func jsonToKV(key string,str string ,data interface{}) string {
_,ok := data.(map[string]interface{})
if ok {
for k,v := range data.(map[string]interface{}) {
if len(key) > 0 {
k = key + "." + k
}
_,ok = v.(map[string]interface{})
if ok {
str = jsonToKV(k,str,v)
} else {
if len(str) == 0 {
str = str + k + "=" + fmt.Sprintf("%v",v)
} else {
str = str + " "+ k + "=" + fmt.Sprintf("%v",v)
}
}
}
}
return str
}
Go语言学习日记【二十】将json格式字符串转化为key=value格式
原创
©著作权归作者所有:来自51CTO博客作者wx6347c4235109b的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
python基础-条件语句、while、字符串格式化、运算符、字符串编码
学习Python基础的笔记,看视频学Python。
字符串 Python 代码块 python基础 -
Java union alll用法
最后还是迫于现实(实习项目)要学JAVA(#——# 其实我想学学C#),好吧废话就不多说了JAVA的8种基本类型: 1. 整型 byte(1字节,-128~127) short(2字节,-32768~32767)int(4字节,-
Java union alll用法 杂记 JAVA Java 数组