mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 05:00:24 +08:00 
			
		
		
		
	增加对map进行base64编解码的函数
This commit is contained in:
		
							
								
								
									
										37
									
								
								pkg/nodeutils/base64_map.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								pkg/nodeutils/base64_map.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
			
		||||
 | 
			
		||||
package nodeutils
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/base64"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"github.com/iwind/TeaGo/maps"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Base64EncodeMap 对Map进行Base64编码
 | 
			
		||||
func Base64EncodeMap(m maps.Map) (string, error) {
 | 
			
		||||
	if m == nil {
 | 
			
		||||
		m = maps.Map{}
 | 
			
		||||
	}
 | 
			
		||||
	data, err := json.Marshal(m)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
	}
 | 
			
		||||
	var result = base64.StdEncoding.EncodeToString(data)
 | 
			
		||||
	return result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Base64DecodeMap 对Map进行Base64解码
 | 
			
		||||
func Base64DecodeMap(encodedString string) (maps.Map, error) {
 | 
			
		||||
	data, err := base64.StdEncoding.DecodeString(encodedString)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var result = maps.Map{}
 | 
			
		||||
	err = json.Unmarshal(data, &result)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return result, nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										55
									
								
								pkg/nodeutils/base64_map_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								pkg/nodeutils/base64_map_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
			
		||||
 | 
			
		||||
package nodeutils
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/iwind/TeaGo/maps"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestBase64EncodeMap(t *testing.T) {
 | 
			
		||||
	{
 | 
			
		||||
		var m maps.Map
 | 
			
		||||
		encodedString, err := Base64EncodeMap(m)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		t.Log("encoded string:", encodedString)
 | 
			
		||||
 | 
			
		||||
		m, err = Base64DecodeMap(encodedString)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		t.Logf("%#v", m)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	{
 | 
			
		||||
		var m = maps.Map{}
 | 
			
		||||
		encodedString, err := Base64EncodeMap(m)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		t.Log("encoded string:", encodedString)
 | 
			
		||||
 | 
			
		||||
		m, err = Base64DecodeMap(encodedString)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		t.Logf("%#v", m)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	{
 | 
			
		||||
		var m = maps.Map{"userId": 1, "name": "李白"}
 | 
			
		||||
		encodedString, err := Base64EncodeMap(m)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		t.Log("encoded string:", encodedString)
 | 
			
		||||
 | 
			
		||||
		m, err = Base64DecodeMap(encodedString)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Fatal(err)
 | 
			
		||||
		}
 | 
			
		||||
		t.Logf("%#v", m)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user