在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);
        }
    }

  

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM