Serialisierung und Deserialisierung, Schreiben und Lesen von JSON-Daten

         Bei der Serialisierung handelt es sich um den Prozess der Konvertierung eines Objekts in einen Bytestrom zur langfristigen Speicherung im Speicher, in einer Datenbank oder in einer Datei. Sein Hauptzweck besteht darin, den Zustand des Objekts für die spätere Verwendung bei Bedarf zu speichern. Der umgekehrte Vorgang wird Deserialisierung genannt.

         Um die Serialisierung nutzen zu können, müssen wir den Namespace  System.Runtime.Serialization.Formatters.Binary importieren.

void Start () {
		Write();
		Read();
    }
	
	void Write () {
		Persons p = new Persons(1001, "海涛");//将这个值传到下面的文件中
		string path = Application.dataPath + "/flie/haitao.txt";
		using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
		{
			try
			{
				BinaryFormatter bf=new BinaryFormatter();//格式化器
				bf.Serialize(fs, p);//序列化
			}
			catch(Exception e)
			{
				print(e.Message);
			}
			finally
			{
				fs.Close();
			}
		}
		
	}
	void Read()
	{
        string path = Application.dataPath + "/flie/haitao.txt";
		using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
		{
			try
			{
				BinaryFormatter bf = new BinaryFormatter();//格式化器
				Persons p = (Persons)bf.Deserialize(fs);//反序列话
				print(p.Id + "\t" + p.Name);
			}
			catch (Exception e)
			{
				print(e.Message);//打赢错误信息
			}
			finally
			{
				fs.Close();
			}
		}
	}

         JSON (JavaScript Object Notation: JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das für Menschen leicht zu lesen und zu schreiben ist. Es ist auch für Maschinen einfach zu analysieren und zu generieren.

         Wenn Sie eine JSON-Datei schreiben, müssen Sie eine Klasse schreiben und die Eigenschaften werden nicht gekapselt

         Hier verwende ich als Beispiel eine Login-Registrierung

      Dies ist eine Attributklasse  

using System;
//序列化类
[Serializable]
public class Users
{
    public string Id;
    public string Password;
    public Users()
    {

    }
    public Users(string id, string password)
    {
        Id = id;
        Password = password;
    }
}

Schreibvorgang

 public void Write()
    {
        string path = Application.dataPath + "/File/Users.txt";   
        Users u = new Users();
        u.Id = zhtext.text;
        u.Password = mmtext.text;
        string s = JsonUtility.ToJson(u) + "\n";//转换格式
        File.AppendAllText(path, s);
        print(s);      
    }

Lesevorgang

    public void Rread()
    {
        string path=Application.dataPath + "/File/Users.txt";
        string[] s=File.ReadAllLines(path);
        for(int i=0;i<s.Length;i++)
        {
            Users u= JsonUtility.FromJson<Users>(s[i]);
            if(u.Id== zhtext.text&&u.Password== mmtext.text)
            {
                print("登入成功");
            }
            if(i==s.Length)
            {
                print("账号或者密码错误");
            }
        }
    }

Guess you like

Origin blog.csdn.net/Optimistic_lx/article/details/129504957