Red de conocimiento informático - Material del sitio web - Cómo leer un archivo json desde local y almacenarlo en el diccionario

Cómo leer un archivo json desde local y almacenarlo en el diccionario

Unity guarda datos Json en archivos locales (diccionarios)

1. Primero importe la biblioteca de análisis Json;

II. Comience a escribir código;

[csharp] Ver. Texto sin formato

// Espacio de nombres

usando System.IO

usando System.Generic

usando System.IO < / p>

usando System.Generic

usando System.Collections.Generic

usando LitJson

[csharp] ver copia simple

// Declaración de variable relevante:

cadena estática privada mFolderName;

cadena estática privada mFileName

Diccionario estático privado Dic_Value = new; Diccionario< cadena, cadena> ();

cadena estática privada Nombre de archivo {

obtener {

return Path.Combine(FolderName, mFileName

p>

}

}

cadena estática privada Nombre de carpeta {

obtener {

return Path.Combine (Application.persistentDataPath, mFolderName

}

}

}

}

[csharp] Ver copia pura

//Método de inicialización Si es necesario, sobrecargue el método de inicialización

public static void Init(string pFolderName, string pFileName) {

mFolderName = pFolderName

mFileName = pFileName

Dic_Value.Clear()

Leer()

}

}

[csharp] Copia pura de la vista

//Leer el archivo y cargar datos json en el diccionario

private static void Read() {

if(!Directory.Exists(FolderName)) {

Directory.CreateDirectory(FolderName) {

FileName.Clear(); >Dic_Value.Clear ();

Leer();

}CrearDirectorio(NombreDeCarpeta); /p>

if(File.Exists(FileName)) {

FileStream fs = new FileStream(FileName, FileMode.Open);

StreamReader sr = new StreamReade);

r(fs);

valores JsonData = JsonMapper.ToObject(sr.ReadToEnd());

foreach(var clave en valores. Claves) {

Dic_Value.Add(clave, valores[clave].ToString());

}

if(fs ! = null) {

fs. Cerrar( );

}

if(sr ! = nulo) {

sr.Close(); p>

}

}

}

[csharp] Ver copia pura

// Convertir datos del diccionario a json y guardar en archivo local

private static void Save() {

valores de cadena = JsonMapper.ToJson(Dic_Value);

Debug.Log(valores)

p>

if(!Directorio.Exists(NombreCarpeta) ){

Directorio.CrearDirectorio(NombreCarpeta)

}

;

Archivo FileStream = nuevo FileStream (Nombre de archivo, FileMode.Create);

byte[] bts = System.Text.Encoding.UTF8.GetBytes(valores); Write(bts,0,bts. Longitud);

if(archivo! = nulo) {

archivo.Close(); >

}

}

}

En este punto, el método de guardado simple está básicamente completado.

3. Ejemplos de uso;

Tome la lectura y escritura de cadenas como ejemplo:

[csharp] ver copia simple

// OK Si el valor clave existe actualmente

public static bool HasKey(string pKey) {

return Dic_Value.ContainsKey(pKey);

}

[csharp] Ver copia pura

// Leer valor de cadena

cadena estática pública GetString(string pKey) {

if(HasKey(pKey) ) {

return Dic_Value[pKey];

} else {

return string.Ver copia pura

//Guardar valor de cadena

public static void SetString(string pKey, string pValue) {

if(HasKey(pKey)) {

Dic_Value[ pKey] = pValue < / p>

} else {

Dic_Value.Add(pKey, pValue

}

Guardar

; }