zoukankan      html  css  js  c++  java
  • 在Unity中使用Newtonsoft.Json来生成和读取json

    首先需要在项目中引用:Newtonsoft.Json.dll

    在代码中添加命名空间:using Newtonsoft.Json;

    json序列化和反序列化两个重要方法和例子:

    JsonConvert.SerializeObject(object value)序列化,它有个重载方法JsonConvert.SerializeObject(object value, params JsonConverter[] converters)

    JsonConvert.DeserializeObject(string value, Type type)反序列化,它有个重载方法JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)

    首先我们先建一个Person类代码如下:
    public class Person
    {
      private string name;
      public string Name
      {
        get { return name; }
        set { name = value; }
      }
      private int age;
      public int Age
      {
        get { return age; }
        set { age = value; }
      }
    }
    

    1.序列化

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Newtonsoft.Json;
     
    namespace JSONnet
    {
        public partial class test : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                Person person = new Person();
                person.Name = "GoldenEasy";
                person.Age = 25;
                string strSerializeJSON = JsonConvert.SerializeObject(person);
                Response.Write(strSerializeJSON);                     
            }
        }
    }
    

    输出结果:{"Name":"GoldenEasy","Age":25}

    2.反序列化

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Newtonsoft.Json;
     
    namespace JSONnet
    {
        public partial class test : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                Person person = new Person();
                person.Name = "GoldenEasy";
                person.Age = 25;
                string strSerializeJSON = JsonConvert.SerializeObject(person);           
                Person user = (Person)JsonConvert.DeserializeObject(strSerializeJSON, typeof(Person));
                Response.Write(user.Name);
             
            }
        }
    }
    

    输出结果:GoldenEasy

    也可以使用模板,通过名字获得Json文件

      private static T ParseJson<T>(string filename)
        {
            try
            {
                var filePath = Configs.GetPath(filename);
                if (!File.Exists(filePath)) return default(T);
                var content = File.ReadAllText(filePath);
                return JsonConvert.DeserializeObject<T>(content);
            }
            catch (Exception ex)
            {
                Logger.Log("File Parse" + ex.Message);
                return default(T);
            }
        }
    

      

  • 相关阅读:
    关于键盘事件对象code值
    解决父元素定位后宽度不随着子元素增大而增大的问题
    绝对定位后元素的宽高如果用百分比表示的计算方法
    4.7做作业时发现,内联元素设置宽高背景以后正常不显示,但是设置了position:absolute;以后就可以显示了。起到了和display:block;一样的效果。然后查了一下知道了。
    react-native中显示本地照片或视频
    用js实现div元素的拖拽、
    TCP协议浅谈
    TCP的三次握手和四次挥手
    TCP协议
    关于this指向的一点小分享
  • 原文地址:https://www.cnblogs.com/baoluqi/p/4832914.html
Copyright © 2011-2022 走看看