**点击**:Json转C#
eg:无嵌套
嵌套:
1、
public class MainGame : MonoBehaviour
{
public List<PlanetaryData> m_AllPlanetaryData = new List<PlanetaryData>();
private void Start()
{
m_AllPlanetaryData = JsonLoad.Instance.LoadJsonDatas<List<PlanetaryData>>(Application.streamingAssetsPath + "/Json/data.json");
for (int i = 0; i < m_AllPlanetaryData.Count; i++)
{
Debug.Log(m_AllPlanetaryData[i].m_Name);
}
}
}
/// <summary>
/// 地球数据简介
/// </summary>
[System.Serializable]
public class PlanetaryData
{
/// <summary>
/// 名字
/// </summary>
public string m_Name { get; set; }
/// <summary>
/// 英文名字
/// </summary>
public string m_EnglishName { get; set; }
/// <summary>
/// 简介
/// </summary>
public string m_Hint { get; set; }
/// <summary>
/// 矿产
/// </summary>
public string m_MineralProducts { get; set; }
}
JSON
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System.IO;
using System;
using System.Text;
public class JsonLoad
{
private static JsonLoad instance;
public static JsonLoad Instance
{
get
{
if (instance == null)
{
instance = new JsonLoad();
}
return instance;
}
}
/// <summary>
/// 读取0
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="path"></param>
/// <returns></returns>
public T LoadJsonDatas<T>(string path)
{
StreamReader sr = new StreamReader(path);
string readContent = sr.ReadToEnd();
T jsonDatas = JsonMapper.ToObject<T>(readContent);
sr.Close();
sr.Dispose();
return jsonDatas;
}
/// <summary>
/// 读取1
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="UnityAssetSubPath"></param>
/// <returns></returns>
public T LoadFromJsonDate<T>(string UnityAssetSubPath)
{
try
{
string filePath = Application.dataPath + UnityAssetSubPath;
T t = JsonMapper.ToObject<T>(File.ReadAllText(filePath));
if (t == null)
{
Debug.Log("JsonDate=Null");
return default(T);
}
return t;
}
catch (Exception E)
{
Debug.LogError(E);
return default(T);
}
}
/// <summary>
/// 保存
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <param name="UnityAssetSubPath"></param>
/// <returns></returns>
public string SaveJsonDate<T>(T t, string UnityAssetSubPath)
{
string filePath = Application.dataPath + UnityAssetSubPath;
FileInfo file = new FileInfo(filePath);
string jsonstr = JsonMapper.ToJson(t);
using (System.IO.StreamWriter thefile = new StreamWriter(filePath, false, Encoding.UTF8))
{
thefile.WriteLine(jsonstr);
}
//在编辑器下
#if UNITY_EDITOR
UnityEditor.AssetDatabase.Refresh();
#endif
return jsonstr;
}
}
public class JsonDatas
{
/// <summary>
/// 地球
/// </summary>
public Star Earth { get; set; }
public Star Port { get; set; }
}
/// <summary>
/// 星
/// </summary>
public class Star
{
public string TextIntr { get; set; }
public string crystal { get; set; }
}