`

.proto多message中对应的js代码

 
阅读更多

在网上好像很少存在关于这方面的资料。只能自己慢慢的尝试。

下面将尝试的代码,发出来。

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---

 

0
0
分享到:
评论

相关推荐

    前端开源库-protobuf-compiler

    在本例中,protobuf-compiler 专注于将 .proto 文件转换成 JavaScript 类,使得这些数据结构可以在前端环境中使用。 **数据序列化** 是软件工程中一个关键的概念,它涉及将数据结构或对象状态转化为可存储或可传输...

    CocosCreator中protobuf与js对象互转

    这样,你就会得到一个`message.js`文件,包含了对应的JavaScript类,可以直接在CocosCreator项目中使用。 在CocosCreator中,你可以创建JavaScript对象并将其转换为protobuf格式: ```javascript import * as ...

    protobuf2.5.0

    4. **编译器工具**:protobuf编译器(protoc)读取.proto文件并生成对应的源代码。这一步是必要的,因为它为你的编程语言提供了易于使用的类和方法来处理protobuf数据。 5. **效率**:protobuf的序列化和反序列化...

    google protobuf 生成

    通过运行这个编译器,你可以生成对应的Java或JavaScript代码,使得在这些语言环境中可以直接操作protobuf定义的数据类型。 `readme.txt`通常包含了关于如何使用protobuf编译器和库的一些指导信息,包括安装步骤、...

    CocosCreator如何生成protobuf文件工程

    现在我们需要生成对应的JavaScript(或TypeScript)代码,以便在CocosCreator中使用。在命令行中导航到你的项目目录,然后运行以下命令: ```bash protoc --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-...

    ProtocolBuffer详细使用文档

    - 使用 Protocol Buffer 编辑器编译 .proto 文件,生成对应的平台代码文件。这一步骤通常包括以下几个子步骤: - 创建 .proto 文件,定义消息类型。 - 编译 .proto 文件生成代码。 ##### 步骤三:应用到具体平台 ...

    egert 使用 protobuf

    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`文件,导入这个文件到...

    protobufJS

    2. **编译.proto文件**:使用protobuf编译器(protoc)将.proto文件转换为JavaScript代码,生成对应的protobuf类型。 3. **在JavaScript中使用**:在JavaScript中引入生成的代码,创建和操作Person对象,然后使用...

    详解vue中使用protobuf踩坑记

    这将生成对应的 JavaScript 文件,可以在 Vue 项目中使用。为了在 Vue 中引入 protobuf 支持,首先需要创建一个 Vue 项目,例如使用 `vue-cli`: ```bash npm install -g vue-cli vue init webpack my-project cd ...

    protobuf 生成工具

    protobuf还有许多扩展和工具,如ProtoBuf.js用于JavaScript环境,以及ProtoBuf.NET支持.NET平台。此外,社区还开发了各种插件和库,如用于增强JSON支持的jsonpb,以及用于处理枚举类型的enum_field。 总之,...

    protobuf Windows

    8. **第三方库和工具**: 社区提供了许多扩展工具和库,如ProtoBuf.js用于JavaScript,protobuf-net用于.NET,以及各种代码生成模板,帮助开发者更方便地使用protobuf。 9. **性能比较**: 虽然protobuf高效且小巧,...

    针对微信小程序使用的protoBuffer库

    3. **编译protobuf文件**:使用ProtoBuf编译器将.proto文件转换为JavaScript代码,生成用于序列化和反序列化的函数。 4. **数据传输**:在微信小程序中,可以将业务对象转换为ProtoBuffer编码的二进制数据,然后...

    实现protobuf与json的互转

    它定义了数据结构的.proto文件,然后生成对应语言(如C++、Java、Python等)的代码,以便在程序中使用这些结构。 2. **protobuf与JSON的区别**:protobuf的数据存储方式比JSON更紧凑,适合网络传输和存储,因为它对...

    protocolbuffers的基础编码

    10. **protobuf.js库**:在JavaScript开发中,通常会使用protobuf.js这个库,它提供了在浏览器和Node.js环境中处理protobuf消息的能力。 11. **兼容性**:protobuf设计了良好的向前兼容性,新版本的.proto文件可以...

    gRPC-vs2017

    2. **服务定义**:在.proto文件中,服务被定义为一系列的RPC方法,每个方法都对应一个请求类型和响应类型。例如: ```protobuf service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} } ...

    Python库 | grpcio-1.2.0rc2-cp27-cp27m-manylinux1_i686.whl

    开发者使用.proto文件来描述服务和消息,ProtoBuf编译器会生成与特定语言对应的代码,如Python、Java等。 2. **服务定义**:在.proto文件中,服务定义了客户端和服务器间交互的方法。每个方法都包含一个请求消息...

    开源项目-google-protobuf.zip

    Google Protobuf通过定义`.proto`文件来描述数据结构,然后生成对应语言(如C++、Java、Python等)的代码,使得序列化和反序列化过程简单易用。 ### 2. `.proto` 文件定义 在`.proto`文件中,用户可以声明消息类型...

    PB封装json解析对象

    Protocol Buffers(简称PB)是由Google开发的一种高效的数据序列化协议,它允许开发者定义数据结构,然后生成能够在多种语言中使用的代码,以便于将数据结构转化为二进制格式进行存储或传输。PB的优势在于其高效性、...

    JavaScript最常用的55个经典技巧

    这篇博客“JavaScript最常用的55个经典技巧”汇总了一些JavaScript开发者在实际工作中经常使用且非常实用的技术点,旨在提升编程效率和代码质量。我们将深入探讨这些技巧,以便更好地理解和应用。 1. **立即执行...

    gRPC:此仓库包含有关gRPC的中级帖子中的代码

    在 JavaScript 中,我们可以使用 grpc-tools 工具从 .proto 文件生成客户端和服务端的代码。这将生成一个 `grpc.js` 文件,包含了服务接口和消息类型的定义。然后,我们可以在服务端实现服务逻辑,如下所示: ```...

Global site tag (gtag.js) - Google Analytics