unity通过http获取和发送json数据
来源:互联网 发布:mac战网修改地区 编辑:程序博客网 时间:2024/06/13 17:06
在Unity3D里使用JSON格式进行数据交换
JSON格式是ajax里面比较常用的一种数据交换格式,比起xml来要方便,而且overhead很小。原来我做的web上的东西基本上数据传输很少用XML,都是用的JSON。关于JSON格式的好处和基础知识,不清楚的可以google一下,这里不详细写了。总体来说好处就是JSON比XML小、快、容易读,解析方便。
前两天写完那个javascript的贴子之后,就一直在琢磨,既然反正Unity3D用的是Javascript,而且支持eval,为啥不用JSON,还要用XML来做数据交换呢。google了一下,好像没有人提出过怎么在unity里使用json,国外就一个帖子还是想用但没解决的。
这个例子里做的事情很简单,主要做了两件事:
1 从服务器的php程序里读一个json数据,然后把内容显示出来。
2 把一个数据结构转换为JSON传给服务器。
所谓数据交换,一来一回,这个例子都做了。
首先第一个,写一个最简单的php程序生成json数据。
取名叫test.php复制代码
- <?php
- $arr=array(
- 'username' => 'foo',
- 'password' => 'bar'
- );
- echo json_encode($arr);
- ?>
第二个php程序是把从unity3d post过去的json数据转成数组使用。取名叫test1.php,也很简单。复制代码
- <?php
- $jsonstring=$_POST["jsonstring"];
- $jsondata=json_decode(stripslashes($jsonstring),true);
- echo $jsondata["password"];
- ?>
- var jsonURL="http://localhost/json/test.php";
- var jsonURL1="http://localhost/json/test1.php";
- function Start(){
- //获取json数据的方法
- var getwww : WWW = new WWW (jsonURL);
- yield getwww;
- var jsonObj1=eval(getwww.data);
- print (jsonObj1["username"]);
- //提交JSON数据的方法
- var mydata=new Boo.Lang.Hash();
- mydata["username"]="hello";
- mydata["password"]="world";
- //将数据转换为json字符串
- var jsonstring=ToJSON(mydata);
- var form = new WWWForm();
- form.AddField("jsonstring", jsonstring);
- var postwww: WWW = new WWW(jsonURL1, form);
- yield postwww;
- print(postwww.data);
- }
- /**
- * 转换JSON
- */
- static function ToJSON(obj){
- if (obj==null) return "null";
- var results=new Array();
- for (var property in obj){
- results.push("\""+property.Key+"\" : \""+property.Value+"\"");
- }
- return "{"+results.join(" , ")+"}";
- }
ToJSON()函数是我写的一个简单函数,就是把Boo.lang.hash数组转成json字符串,只能处理一维数组,如果谁有兴趣可以改一下让它支持多维数组。
这样一来,原来我习惯的json数据传输就可以用了,如果熟悉使用json格式的朋友会方便多了,原来习惯使用xml格式的朋友也推荐你研究下这种简单方便的格式,会提高一些程序效率。:victory:
呃,论坛在safari下不能用discuz代码模式…code标签只能换用firefox编辑下了……另外tojson那个函数之所以没支持多维数组,主要是不知道在原来ecma的javascript里的undefined这个东西在unity3d里怎么表示…
json里要正常传递中文请参考这个贴:
http://www.cocoachina.com/bbs/read.php?tid-9881.html
0 0
- unity通过http获取和发送json数据
- [php]通过http post发送json数据
- [php]通过http post发送json数据
- [php]通过http post发送json数据
- 通过http post发送json数据
- [php]通过http post发送json数据
- PHP通过Http Post请求发送Json对象数据?
- 通过json发送Http请求
- 通过json发送Http请求
- java后台 通过HTTP接口获取json数据
- 001-实现Unity3d通过Http协议 向PHP服务器发送和解析Json格式数据 并进行测试
- 通过Http协议获取JSON
- Java Json解析,Java Web Json解析,Java Web服务端获取Json数据,客户端通过HTTP获取Json数据
- 使用python通过http发送json
- Ajax发送和获取json数据到Spring mvc
- 发送http请求获取数据
- jquery通过ajax方式获取json数据和解析
- Unity利用WWW http传输Json数据
- 关于sqlite和wxsqlite的数据库加密
- windows下vim的安装、配置、解决中文乱码
- iOS中SQLite数据库云存储的实现
- 用scala实现wordcount
- Java最大的优势真的在于跨平台吗?
- unity通过http获取和发送json数据
- Android中LocalSocket使用
- SharedPreferences
- win7系统服务优化——服务列表禁止项
- 数组
- word中插入的图片的环绕方式
- Windows 10 is going to be the last major revision of the operating system.
- CAS实现SSO单点登录原理
- 使用命名空间的好处