欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js protobuf 实例对象在JSON转换时遇到的问题

程序员文章站 2023-12-30 19:00:22
...

一、踩坑情况:

在使用 JSON 转换 protobuf 生成的对象时,获取到的字符串与原数据不符。具体体现在,枚举类型的属性,在生成的对象中,值为 数字 ,而使用了 JSON.stringify 之后,得到的数据中,键名对应的不是数字,而是定义枚举类型时的字符串。

(具体的原因是由于 protobuf 生成的实例对象,重写了 toJSON 方法,导致 JSON 转换时,出现了预料之外的结果)

二、解决情况:

import { types } from '../protobuf/types';
// 初始化实例
const tempInstance = new types.Temp({ /*...*/ });
// 转换成普通对象
const tempObject = types.Temp.toObject( tempInstance );
// JSON 转换成字符串
const tempStringify = JSON.stringify( tempObject );

上一篇:

下一篇: