[Unity3d]u3d请求json数据并解析
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
unity3d在跟.net进行http通信的时候,最常见的就是表单数据的提交请求了,但服务器端会返回一坨json数据,这就要求我们在unity中进行json数据的处理了,一般unity中处理json个数数据用的最多的就是LitJSON(它是.net平台下处理SON数据库的类库)。下面我就贴出源码,仅供学习参考!
关于LitJSON的安装和使用,请参考:http://www.360doc.com/content/13/0117/11/10941785_260686840.shtml
或者参考:http://blog.csdn.net/dingxiaowei2013/article/details/17115665
将LitJson.dll放在assets目录下的plugins文件下,如果没有plugins文件就手动创建一个
Client:
using UnityEngine;
using System.Collections;
using LitJson;
public class GetPhotoList : MonoBehaviour {
// Use this for initialization
void Start () {
StartCoroutine(GetPhotos());
}
// Update is called once per frame
IEnumerator GetPhotos(){
WWWForm form = new WWWForm();
form.AddField("id","123");
WWW w = new WWW("http://localhost:36944/GetPhotoList.ashx",form);
while (!w.isDone){yield return new WaitForEndOfFrame();}
if (w.error != null){Debug.LogError(w.error);}
Debug.Log(w.text);
JsonData jd = JsonMapper.ToObject(w.text);
for (int i = 0; i < jd.Count; i++)
{
Debug.Log("id=" + jd[i]["id"]);
Debug.Log("name=" + jd[i]["name"]);
}
}
}
Server:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization.Json;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.IO;
namespace UpdatePhoto
{
/// <summary>
/// GetPhotoList 的摘要说明
/// </summary>
public class GetPhotoList : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string id = context.Request.Form["id"];
string path = context.Request.PhysicalApplicationPath;
//context.Response.Write("Hello World");
List<Photo> photos = GetPhotos(id,path);
DataContractJsonSerializer djson = new DataContractJsonSerializer(photos.GetType());
djson.WriteObject(context.Response.OutputStream, photos);
}
public List<Photo> GetPhotos(string id,string path)
{
//获取目录
string localPath = path+id + "\\";
//读取目录下的文件
if (!Directory.Exists(localPath)) return null;
string[] files = Directory.GetFiles(localPath);
List<Photo> photos = new List<Photo>();
foreach (string file in files)
{
string filename = file.Substring(file.LastIndexOf('\\')+1);
Photo p = new Photo();
p.name = filename;
p.id = id;
photos.Add(p);
}
return photos;
}
public bool IsReusable
{
get
{
return false;
}
}
}
public class Photo
{
public string id;
public string name;
}
}
==================== 迂者 丁小未 CSDN博客专栏=================
MyBlog:http://blog.csdn.net/dingxiaowei2013 MyQQ:1213250243
MyTel:13262983383
====================== 相互学习,共同进步 ===================
GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:2 个月前 )
960b763e
5 个月前
8c391e04
8 个月前
更多推荐
已为社区贡献5条内容
所有评论(0)