【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; } } } }