【C#】 .NET Framework 中使用JSON

因为 System.Text.Json 是 .NET Core 和 .NET 5+ 中引入的命名空间。如果你使用的是 .NET Framework,你需要使用 Newtonsoft.Json 库来处理 JSON。

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;

namespace RH850_ChangingPathConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            string inputPath = null;
            string outputPath = null;

            // 检查是否有命令行参数
            if (args.Length == 2)
            {
                inputPath = args[0];
                outputPath = args[1];
            }
            else
            {
                // 如果没有命令行参数,提示用户输入
                Console.WriteLine("Please enter the RH850 Hex input path:");
                inputPath = Console.ReadLine();

                Console.WriteLine("Please enter the RH850 Hex output path:");
                outputPath = Console.ReadLine();
            }

            // 创建一个包含路径信息的对象
            var paths = new
            {
                RH850_InputHexPath = inputPath,
                RH850_OutputHexPath = outputPath
            };

            // 获取当前执行文件的目录
            string currentDirectory = Directory.GetCurrentDirectory();
            string jsonFilePath = Path.Combine(currentDirectory, "RH850_paths.json");

            // 将路径信息序列化为 JSON 字符串
            string jsonString = JsonConvert.SerializeObject(paths, Formatting.Indented);
            Console.WriteLine("JSON 字符串: " + jsonString);

            // 将 JSON 字符串写入文件
            File.WriteAllText(jsonFilePath, jsonString);//File.WriteAllText 方法会覆盖现有的文件内容

            Console.WriteLine("Paths saved to " + jsonFilePath);

            // 从文件中读取 JSON 字符串
            string readJsonString = File.ReadAllText(jsonFilePath);

            // 反序列化 JSON 字符串为对象
            var readPaths = JsonConvert.DeserializeObject<RH850_Paths>(readJsonString);

            // 打印路径信息
            Console.WriteLine("RH850_InputHexPath: " + readPaths.RH850_InputHexPath);
            Console.WriteLine("RH850_OutputHexPath: " + readPaths.RH850_OutputHexPath);
        }

        // 定义一个类来表示路径信息
        public class RH850_Paths
        {
            public string RH850_InputHexPath { get; set; }
            public string RH850_OutputHexPath { get; set; }
        }
    }
}

 

posted @ 2024-10-25 14:47  ban_boi  阅读(10)  评论(0编辑  收藏  举报