zoukankan      html  css  js  c++  java
  • Unity3d LitJson

    LitJSON是一个.NET平台下处理JSON格式数据的类库,小巧、快速。它的源代码使用C#编写,可以通过任何.Net平台上的语言进行调用。

    开放前先添加引用LitJson.dll,再导入命名空间 using LitJson,可以到http://litjson.sourceforge.net去下载。

    LitJSON,核心点就是数据的传输和获取。

    实例如下:

    一:JsonWriter、JsionData、JsonMapper,单个一一对应数据;

    获取需要"传输"给服务器的Json数据:

    string clientStr(){

    string jsonStr="{"userid":"12","userName":"wuk","userpassword":"8912","item":"f"}";

    string jsonStr="{"userid":"12","userName":"wuk","userpassword":"8912","item":{"1":"f","2":"g"}}";

    System.Text.StringBuilder sb=new System.Text.StringBuilder();

    LitJson.JsonWriter writer=new LitJson.JsonWrite(sb);

    writer.WriteObjectStart();

    writer.WritePropertyName("userid");

    writer.Write(12);

    ............

    writer.WriteObjectEnd();

    return sb.ToString();

    }

    解析服务器返回的Json数据:JsonMapper

    void ResolveJson(string str){

    // 完全知道Json每个选项的数据类型;

    JsonData jData=JsonMapper.ToObject(str);

      string  userID = (string)jdata2["userid"];

    // 不完全知道Json每个数据类型

      JsonReader reader = new JsonReader (json);

      while (reader.Read())
            {
                string type = reader.Value != null ? reader.Value.GetType().ToString() : "";

        根据reader.Value.GetType(),做相关数据类型;

            }

    }

    二,数据类,传输数据。我个人偏向于此方式;

    class Person
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public DateTime Birthday { get; set; }
        }

    获取需要"传输"给服务器的Json数据:

        public string PersonToJson()
            {
                Person bill = new Person();
                bill.Name = "www.87cool.com";
                bill.Age = 3;
                bill.Birthday = new DateTime(2007, 7, 17);
           string json_bill = JsonMapper.ToJson(bill);

        return json_bill;
            }

    解析服务器返回的Json数据:JsonMapper

     

    public Person getJsonPerson(string  str){

    Person   person=  JsonMapper.ToObject<Person>(str);

    return person;

    }

    三,网络通信:HTTP,短连接;

    void sendRequst(string str,string url){

    HTTP.Request  request= HTTP.Request("POST",url);

     request.SetHeader("Content-Type", "application/json");

     request.Text = str;

            request.Send();

            request.useCache = false;

            while (!request.isDone) yieldreturnnewWaitForEndOfFrame();

            if (request.exception != null)

                Debug.LogError(request.exception);

            else

            {

                var response = request.response;

                Debug.Log(response.status);//200:成功

                Debug.Log(response.Text);

                ResolveJson(response.Text);

            }

    }

  • 相关阅读:
    struts2 constant详解
    大图片上传(ImageIO,注意有的图片不能上传时因为他是tiff格式)
    Spring提供的iBatis的SqlMap配置
    2013-7-31hibernate二级缓存
    2013-7-30。。。。难得闲
    POI导出大量数据的简单解决方案
    Tomcat优化详细2
    Tomcat优化详细1
    Tomcat优化方案
    java链表实现
  • 原文地址:https://www.cnblogs.com/kuangwu/p/3118666.html
Copyright © 2011-2022 走看看