首页 > PHP资讯 > HTML5培训技术 > [Unity3d]u3d请求json数据并解析

[Unity3d]u3d请求json数据并解析

HTML5培训技术

unity3d在跟.net进行http通信的时候,最常见的就是表单数据的提交请求了,但服务器端会返回一坨json数据,这就要求我们在unity中进行json数据的处理了,一般unity中处理json个数数据用的最多的就是LitJSON(它是.net平台下处理SON数据库的类库)。下面我就贴出 ,仅供学习参考!

 

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{    ///     /// GetPhotoList 的摘要说明    ///     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 photos = GetPhotos(id,path);            DataContractJsonSerializer djson = new DataContractJsonSerializer(photos.GetType());            djson.WriteObject(context.Response.OutputStream, photos);        }        public List GetPhotos(string id,string path)        {            //获取目录            string localPath = path+id + ;             //读取目录下的文件            if (!Directory.Exists(localPath)) return null;            string[] files = Directory.GetFiles(localPath);            List photos = new List();            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;    }}


 

HTML5培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持44不支持0