STT serialize
Douyu's STT is a method of serializing structured data
- Keys and values are directly split using '@='
- Array uses '/' to separate elements
- '/' in key or value is encoded as '@S'
- '@' in key or value is encoded as '@A'
Example:
(1) key-value:key1@=value1/key2@=value2/key3@=value3/
(2) Array:value1/value2/value3/
Import
import "github.com/DreamedOfMe/barrage-kit/stt"
Demo
package main
import (
"fmt"
"github.com/DreamedOfMe/barrage-kit/stt"
)
func main() {
fmt.Println(stt.Decode("a@A=b@Sc@A=d@S/d/v/"))
fmt.Println(stt.Decode("a@=b/c@=d/"))
fmt.Println(stt.Encode(map[string]interface{}{
"type": "joingroup",
"rid": "123456",
"gid": "-9999",
}))
}