• 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);

            }

    }

  • 相关阅读:
    仿照Excel的控件,支持c#
    Excel地图插件
    com接口调用
    决策树算法
    python练习题
    numpy练习题
    机器学习_线性回归
    python学习之老男孩python全栈第九期_数据库day005知识点总结 —— MySQL数据库day5
    problem-solving-with-algorithms-and-data-structure-usingpython(使用python解决算法和数据结构) -- 基本数据结构 -- 队列
    python学习之老男孩python全栈第九期_数据库day004知识点总结 —— MySQL数据库day4
  • 原文地址:https://www.cnblogs.com/kuangwu/p/3118666.html
Copyright © 2020-2023  润新知