You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Protobuf解析JSON时的字段不存在错误

解决Protobuf解析JSON字段不匹配错误

错误原因

当前Protobuf结构和目标JSON格式完全不匹配:JSON里my_services是一个以服务名称(如service1、serviceN)为键的对象,每个值都包含entities字段;但原Protobuf把my_services映射成PrettyList,而PrettyList只有一个entities字段,层级对应不上才触发了解析错误。

修正后的Protobuf定义

调整结构使其完全适配JSON格式:

message PrettyRequest {
    // 直接用map存储服务名称到对应实体的映射,替代原有的PrettyList
    map<string, ServiceEntity> my_services = 1;
}

// 对应JSON中单个服务的结构,包含entities字段
message ServiceEntity {
    map<string, RepeatedValue> entities = 1;
}

message RepeatedValue {
  repeated Value val = 1;
}

message Value {
  oneof val {
    bytes bytes_val = 1;
    string string_val = 2;
    int32 int32_val = 3;
  }
}

调整说明

  • 删掉冗余的PrettyList和EntitiesDict,直接在PrettyRequest里定义my_services为map<string, ServiceEntity>,完美匹配JSON中my_services的键值结构
  • ServiceEntity对应JSON里每个服务的对象,包含entities字段,层级和JSON完全对齐
  • 保留RepeatedValue和Value来处理数组类型的字段值(比如driver_id对应的数组)

调整后原Python代码无需修改,依然可以正常解析目标JSON。

内容的提问来源于stack exchange,提问作者mascai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 21:54:59