txt를 json 형식으로 변환하는 방법: 먼저 해당 코드 스크립트 파일을 연 다음 TXT 파일을 읽고 [ReadTextToJson();] 메서드를 통해 Json으로 변환합니다.
JSON은 경량 데이터 교환 형식입니다. ECMAScript의 하위 집합을 기반으로 하며 프로그래밍 언어와 완전히 독립적인 텍스트 형식을 사용하여 데이터를 저장하고 표현합니다. 단순성과 명확한 계층 구조 덕분에 JSON은 이상적인 데이터 교환 언어입니다. 사람이 읽고 쓰기가 쉽고, 기계가 구문 분석하고 생성하기도 쉽고 네트워크 전송 효율성이 효과적으로 향상됩니다.
다음은 변환된 프로그램 코드입니다.
using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; using LitJson; using UnityEngine; using Excel; using Excel.Core; using OfficeOpenXml.Style; using OfficeOpenXml; /// <summary> /// 该class用于json的时候不能有构造函数 /// </summary> public class DataNode//自定义类来承接一会读出来的数据分类 { public string CopyName; public string CopyPosition; public string CopyRotation; } public class DataCenter//自定义类包含List列表来添加一会读取出来的的数据信息 { public List<DataNode> List; public DataCenter() { List =new List<DataNode>(); } } public class JsonConvert : MonoBehaviour { // Use this for initialization private string _txtPath;//TXT文件路径 private string _jsonPath;//转换后写入的json路径 private string _excelPath; void Start () { _jsonPath = Application.streamingAssetsPath + "/CopyInfo.json";//定义路径 _txtPath = Application.streamingAssetsPath + "/CopyInfo.txt"; _excelPath = Application.streamingAssetsPath + "/CopyInfo.json"; // Json的解析是很快的 网络 ReadTextToJson();//读取TXT文件并转化为Json ReadJsonFromJsonPath();//读取Json文件 WriteExcel(_excelPath); } // Update is called once per frame void Update () { } void ReadJsonFromJsonPath() { // 读取全部(文件路径) string jsondata = File.ReadAllText(_jsonPath); List<DataNode> node = JsonMapper.ToObject<List<DataNode>>(jsondata);//固定格式 Debug.LogError(node.Count); } void ReadTextToJson() { DataCenter dc = new DataCenter();//实例化dc,待会用其List //读文件固定格式 using (StreamReader reader = new StreamReader(_txtPath,Encoding.UTF8)) { string tmpStr = string.Empty; while ( !string.IsNullOrEmpty(tmpStr = reader.ReadLine())) { string[] infos = tmpStr.Split('_'); DataNode _node = new DataNode();//实例化调用其属性 _node.CopyName = infos[0];//把读取的内容赋值 _node.CopyPosition = infos[1]; _node.CopyRotation = infos[2]; dc.List.Add(_node);//把内容添加进列表 } } //数据读取完毕 开始写入json 传递的List<> string jsonData = JsonMapper.ToJson(dc.List); File.WriteAllText(_jsonPath,jsonData); } private void WriteExcel(string path) { DataCenter dc = new DataCenter();//实例化dc,待会用其List //读文件固定格式 using (StreamReader reader = new StreamReader(_txtPath, Encoding.UTF8)) { string tmpStr = string.Empty; while (!string.IsNullOrEmpty(tmpStr = reader.ReadLine())) { string[] infos = tmpStr.Split('_'); DataNode _node = new DataNode();//实例化调用其属性 _node.CopyName = infos[0];//把读取的内容赋值 _node.CopyPosition = infos[1]; _node.CopyRotation = infos[2]; dc.List.Add(_node);//把内容添加进列表 } } Debug.LogError(dc.List.Count); FileInfo excelInfo = new FileInfo(path); if (excelInfo.Exists) { excelInfo.Delete(); excelInfo = new FileInfo(path); } //开始使用 Excel using (ExcelPackage package = new ExcelPackage(excelInfo)) { ExcelWorksheet sheet = package.Workbook.Worksheets.Add("TestInfo"); // 添加了一个工作表 sheet.Cells[1, 1].Value = "CopyName"; sheet.Cells[1, 2].Value = "CopyPosition"; sheet.Cells[1, 3].Value = "CopyRotation"; for (int i = 0; i < dc.List.Count; i++) { sheet.Cells[2 + i, 1].Value = dc.List[i].CopyName; sheet.Cells[2 + i, 2].Value = dc.List[i].CopyPosition; sheet.Cells[2 + i, 3].Value = dc.List[i].CopyRotation; } sheet.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; sheet.Cells.Style.VerticalAlignment = ExcelVerticalAlignment.Center; sheet.Cells.Style.Font.Bold = true; sheet.Cells.Style.Font.Name = "宋体"; sheet.Cells.Style.Font.Size = 28; sheet.Cells.AutoFitColumns(50, 150); package.Save(); } } }
위 내용은 txt 형식을 json 형식으로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!