golang中MetaMessage(mm)的使用

MetaMessage(mm)是一個結構化數據交換協議。自描述、自約束、自示例,實現了無損數據交換,是一種原生適配 AI + 人類 + 機器的下一代通用協議。

在golang中,使用mm非常簡單。

首先安裝下mm go get github.com/metamessage/metamessage

一個簡單的示例:

go 复制代码
package main
import (
    "fmt"
    mm "github.com/metamessage/metamessage"
)
func main() {
    // 從結構體編碼
    type Person struct {
        Name  string 
        Age   int   
    }
    p := Person{Name: "Alice", Age: 30}
    data, err := mm.EncodeFromObject(p)
    if err != nil {
        panic(err)
    }
    fmt.Printf("Encoded: %x\n", data)
    // 解碼到結構體
    var decoded Person
    err = mm.Decode(data, &decoded)
    if err != nil {
        panic(err)
    }
    fmt.Printf("Decoded: %+v\n", decoded)
    // 從 JSONC 編碼
    jsoncStr := `{"name": "Bob", "age": 25}`
    data2, err := mm.EncodeFromJSONC(jsoncStr)
    if err != nil {
        panic(err)
    }
    // 解碼到 JSONC
    jsoncOut, err := mm.DecodeToJSONC(data2)
    if err != nil {
        panic(err)
    }
    fmt.Println("JSONC:", jsoncOut)
}

通常我們只需要使用四個接口就夠了:

  • EncodeFromObject(in any) ([]byte, error): 從結構體編碼
  • EncodeFromJSONC(in string) ([]byte, error): 從 JSONC 字符串編碼
  • Decode(in []byte, out any) error: 解碼到結構體
  • DecodeToJSONC(in []byte) (string, error): 解碼到 JSONC 字符串

mm能夠實現各語言間數據的精準傳遞,不丟失結構、類型等信息,可以完美重建數據結構,可以替代傳統的json、protobuf、messagepack等序列化方式了。

相关推荐
CedarQR19 小时前
万字长文:从零在 RK3588 上部署 PaddleSpeech 中文 TTS 全流程(FastSpeech2 + HiFiGAN)
开发语言·c++·嵌入式硬件·ubuntu·json
Geoking.2 天前
JSON vs JSONL:从数据格式到 AI Agent 的工程实践
人工智能·深度学习·json
ID_180079054732 天前
京东商品详情API能力解析与标准化应用方案(含JSON返回示例)
json
灯澜忆梦3 天前
Go 语言 _JSON---序列化与反序列化
开发语言·golang·json
梦幻通灵4 天前
Notepad++格式化Json两种方案【持续更新】
android·json·notepad++
解局易否结局4 天前
鸿蒙原生开发实战|Native JSON 编解码与高性能数据序列化
华为·json·harmonyos
代码的小搬运工4 天前
网络请求(NSURL、NSURLRequest、NSURLSessionDataTask、协议回调与 JSON 数据的基本流向)
网络·数据库·json
2601_960906725 天前
网络防御等最先进AI模型领域
人工智能·json·hbase·flume·storm
前网易架构师-高司机6 天前
带标注的山体滑坡塌方数据集数据集,识别率78.1%,974张图,支持yolo,coco json,voc xml,文末有模型训练代码
xml·yolo·json·数据集·自然灾害·山体滑坡
前网易架构师-高司机7 天前
带标注的SDD-SAR遥感船舶识别数据集,识别率92.9%,7000张图,支持yolo,coco json,voc xml,文末有模型训练代码
yolo·json·数据集·遥感·sar·船舶·sdd