溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

txt格式轉(zhuǎn)json格式的方法

發(fā)布時間:2020-09-25 09:38:49 來源:億速云 閱讀:280 作者:小新 欄目:web開發(fā)

txt格式轉(zhuǎn)json格式的方法?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

JSON是一種輕量級的數(shù)據(jù)交換格式。它基于 ECMAScript 的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。

以下是轉(zhuǎn)換的程序代碼:

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的時候不能有構(gòu)造函數(shù)
/// </summary>
public class DataNode//自定義類來承接一會讀出來的數(shù)據(jù)分類
{
    public string CopyName;
    public string CopyPosition;
    public string CopyRotation;
}

public class DataCenter//自定義類包含List列表來添加一會讀取出來的的數(shù)據(jù)信息
{
    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;//轉(zhuǎn)換后寫入的json路徑
    private string _excelPath;
    
	void Start ()
	{
        _jsonPath = Application.streamingAssetsPath + "/CopyInfo.json";//定義路徑
	    _txtPath = Application.streamingAssetsPath + "/CopyInfo.txt";
        _excelPath = Application.streamingAssetsPath + "/CopyInfo.json";
	   // Json的解析是很快的 網(wǎng)絡(luò)
        ReadTextToJson();//讀取TXT文件并轉(zhuǎn)化為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();//實例化調(diào)用其屬性
                _node.CopyName = infos[0];//把讀取的內(nèi)容賦值
                _node.CopyPosition = infos[1];
                _node.CopyRotation = infos[2];
                dc.List.Add(_node);//把內(nèi)容添加進列表
            }
        }
        //數(shù)據(jù)讀取完畢 開始寫入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();//實例化調(diào)用其屬性
                _node.CopyName = infos[0];//把讀取的內(nèi)容賦值
                _node.CopyPosition = infos[1];
                _node.CopyRotation = infos[2];
                dc.List.Add(_node);//把內(nèi)容添加進列表
            }
        }
        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();
        }
        
    }
}

感謝各位的閱讀!看完上述內(nèi)容,你們對txt格式轉(zhuǎn)json格式的方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI