在网上好像很少存在关于这方面的资料。只能自己慢慢的尝试。
下面将尝试的代码,发出来。
package xmty;
option java_package = "comcom.xmty.java";
option java_outer_classname = "TestTest";
message People{
required string name = 1;
repeated string list = 2;
message tel{
repeated int32 no = 1;
}
required tel t = 3;
}
以上的.proto配置的内容,对应的js代码如下
if (typeof(xmty)=="undefined") {xmty = {};}
xmty.tel = PROTO.Message("xmty.tel",{
no: {
options: {},
multiplicity: PROTO.repeated,
type: function(){return PROTO.string;},
id: 1
}
});
xmty.People = PROTO.Message("xmty.People",{
name: {
options: {},
multiplicity: PROTO.required,
type: function(){return PROTO.string;},
id: 1
},
list: {
options:{},
multiplicity: PROTO.repeated,
type: function(){return PROTO.string;},
id: 2
},
t:{
options:{},
multiplicity: PROTO.required,
type: function(){return xmty.tel;},
id: 3
}
});
页面使用:
<script type="text/javascript" src="protobuf.js"></script>
<script type="text/javascript" src="pbj.js"></script>
<script type="text/javascript" src="people.proto.js"></script>
<script type="text/javascript">
$(function(){
$.get("test.do",function(data){
var s = new xmty.People();
$("#111").append(data + "<br/>----------------<br />");
s.ParseFromStream(new PROTO.Base64Stream(data));
$("#111").append(s + "<br />------------------<br />");
$("#111").append("name:"+s.name+"<br />---------------------<br />");
for(var i=0;i<s.list.length;i++){
var l = s.list[i];
$("#111").append("list:"+ l + "----- -------------<br />");
}
for(var i=0;i<s.t.no.length;i++ ){
$("#111").append("tel--->"+s.t.no[i]+"---<br />");
}
});
});
</script>
后台数据为:
name: "zms"
list: "list0"
list: "list1"
list: "list2"
list: "list3"
list: "list4"
list: "list5"
list: "list6"
list: "list7"
list: "list8"
list: "list9"
t {
no: "13860132591"
}
经前台脚本之后,显示的内容为:
name: "zms" list: "list0" list: "list1" list: "list2" list: "list3" list: "list4" list: "list5" list: "list6" list: "list7" list: "list8" list: "list9" t { no: "13860132591" }
------------------
name:zms
---------------------
list:list0----- -------------
list:list1----- -------------
list:list2----- -------------
list:list3----- -------------
list:list4----- -------------
list:list5----- -------------
list:list6----- -------------
list:list7----- -------------
list:list8----- -------------
list:list9----- -------------
tel--->13860132591---
分享到:
相关推荐
在本例中,protobuf-compiler 专注于将 .proto 文件转换成 JavaScript 类,使得这些数据结构可以在前端环境中使用。 **数据序列化** 是软件工程中一个关键的概念,它涉及将数据结构或对象状态转化为可存储或可传输...
这样,你就会得到一个`message.js`文件,包含了对应的JavaScript类,可以直接在CocosCreator项目中使用。 在CocosCreator中,你可以创建JavaScript对象并将其转换为protobuf格式: ```javascript import * as ...
4. **编译器工具**:protobuf编译器(protoc)读取.proto文件并生成对应的源代码。这一步是必要的,因为它为你的编程语言提供了易于使用的类和方法来处理protobuf数据。 5. **效率**:protobuf的序列化和反序列化...
通过运行这个编译器,你可以生成对应的Java或JavaScript代码,使得在这些语言环境中可以直接操作protobuf定义的数据类型。 `readme.txt`通常包含了关于如何使用protobuf编译器和库的一些指导信息,包括安装步骤、...
现在我们需要生成对应的JavaScript(或TypeScript)代码,以便在CocosCreator中使用。在命令行中导航到你的项目目录,然后运行以下命令: ```bash protoc --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-...
- 使用 Protocol Buffer 编辑器编译 .proto 文件,生成对应的平台代码文件。这一步骤通常包括以下几个子步骤: - 创建 .proto 文件,定义消息类型。 - 编译 .proto 文件生成代码。 ##### 步骤三:应用到具体平台 ...
protoc --plugin=protoc-gen-ts=./node_modules/protoc-gen-ts/bin/protoc-gen-ts.js --ts_out=./src message.proto ``` 4. **在Egret项目中使用**:编译后的代码会生成一个`message_pb.ts`文件,导入这个文件到...
2. **编译.proto文件**:使用protobuf编译器(protoc)将.proto文件转换为JavaScript代码,生成对应的protobuf类型。 3. **在JavaScript中使用**:在JavaScript中引入生成的代码,创建和操作Person对象,然后使用...
protobuf还有许多扩展和工具,如ProtoBuf.js用于JavaScript环境,以及ProtoBuf.NET支持.NET平台。此外,社区还开发了各种插件和库,如用于增强JSON支持的jsonpb,以及用于处理枚举类型的enum_field。 总之,...
8. **第三方库和工具**: 社区提供了许多扩展工具和库,如ProtoBuf.js用于JavaScript,protobuf-net用于.NET,以及各种代码生成模板,帮助开发者更方便地使用protobuf。 9. **性能比较**: 虽然protobuf高效且小巧,...
3. **编译protobuf文件**:使用ProtoBuf编译器将.proto文件转换为JavaScript代码,生成用于序列化和反序列化的函数。 4. **数据传输**:在微信小程序中,可以将业务对象转换为ProtoBuffer编码的二进制数据,然后...
它定义了数据结构的.proto文件,然后生成对应语言(如C++、Java、Python等)的代码,以便在程序中使用这些结构。 2. **protobuf与JSON的区别**:protobuf的数据存储方式比JSON更紧凑,适合网络传输和存储,因为它对...
10. **protobuf.js库**:在JavaScript开发中,通常会使用protobuf.js这个库,它提供了在浏览器和Node.js环境中处理protobuf消息的能力。 11. **兼容性**:protobuf设计了良好的向前兼容性,新版本的.proto文件可以...
2. **服务定义**:在.proto文件中,服务被定义为一系列的RPC方法,每个方法都对应一个请求类型和响应类型。例如: ```protobuf service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} } ...
开发者使用.proto文件来描述服务和消息,ProtoBuf编译器会生成与特定语言对应的代码,如Python、Java等。 2. **服务定义**:在.proto文件中,服务定义了客户端和服务器间交互的方法。每个方法都包含一个请求消息...
Google Protobuf通过定义`.proto`文件来描述数据结构,然后生成对应语言(如C++、Java、Python等)的代码,使得序列化和反序列化过程简单易用。 ### 2. `.proto` 文件定义 在`.proto`文件中,用户可以声明消息类型...
Protocol Buffers(简称PB)是由Google开发的一种高效的数据序列化协议,它允许开发者定义数据结构,然后生成能够在多种语言中使用的代码,以便于将数据结构转化为二进制格式进行存储或传输。PB的优势在于其高效性、...
这将生成对应的 JavaScript 文件,可以在 Vue 项目中使用。为了在 Vue 中引入 protobuf 支持,首先需要创建一个 Vue 项目,例如使用 `vue-cli`: ```bash npm install -g vue-cli vue init webpack my-project cd ...
这篇博客“JavaScript最常用的55个经典技巧”汇总了一些JavaScript开发者在实际工作中经常使用且非常实用的技术点,旨在提升编程效率和代码质量。我们将深入探讨这些技巧,以便更好地理解和应用。 1. **立即执行...
在 JavaScript 中,我们可以使用 grpc-tools 工具从 .proto 文件生成客户端和服务端的代码。这将生成一个 `grpc.js` 文件,包含了服务接口和消息类型的定义。然后,我们可以在服务端实现服务逻辑,如下所示: ```...