在网上好像很少存在关于这方面的资料。只能自己慢慢的尝试。
下面将尝试的代码,发出来。
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---