从下面的代码中,我想使用
Newtonsoft.Json.Linq
序列化生成 JSON 文件。但就我而言,它只是在控制台上运行程序,无法生成 .JSON
文件。
public static void Main(string[] args)
{
GradeSheet gradeSheet = new GradeSheet();
Console.WriteLine("Student Name: ");
gradeSheet.StudentName = Console.ReadLine();
Console.WriteLine("Roll Number: ");
gradeSheet.StudentRollNo = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Class (present): ");
gradeSheet.StudentClass = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("\n\nEnter marks \n");
Console.WriteLine("Marketing: ");
gradeSheet.MaekringSubjectMarks = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Statistics: ");
gradeSheet.StatSubjectMarks = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("MIS: ");
gradeSheet.MisSubjectMarks = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Strategy: ");
gradeSheet.StarategySubjectMarks = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("BRM: ");
gradeSheet.BRMSubjectMarks = Convert.ToDouble(Console.ReadLine());
string gradeJson = JsonConvert.SerializeObject(gradeSheet);
Console.WriteLine(gradeJson);
}
它应该生成
.JSON
文件
易卜拉欣已经指出的你的问题很简单,就是你从未调用函数向文件写入任何内容。
public static void Main(string[] args)
{
GradeSheet gradeSheet = new GradeSheet();
Console.WriteLine("Student Name: ");
gradeSheet.StudentName = Console.ReadLine();
Console.WriteLine("Roll Number: ");
gradeSheet.StudentRollNo = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Class (present): ");
gradeSheet.StudentClass = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("\n\nEnter marks \n");
Console.WriteLine("Marketing: ");
gradeSheet.MaekringSubjectMarks = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Statistics: ");
gradeSheet.StatSubjectMarks = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("MIS: ");
gradeSheet.MisSubjectMarks = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Strategy: ");
gradeSheet.StarategySubjectMarks = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("BRM: ");
gradeSheet.BRMSubjectMarks = Convert.ToDouble(Console.ReadLine());
string gradeJson = JsonConvert.SerializeObject(gradeSheet, Formatting.Indented);
Console.WriteLine(gradeJson);
string path = "C:\\YourPath\\FileName.json"
File.WriteAllText(path, gradeJson);
}
我假设你有这样的课程
class GradeSheet
{
public string? StudentName { get; set; } = string.Empty;
public int StudentRollNo { get; set; }
public int StudentClass { get; set;}
public double MaekringSubjectMarks { get; set; }
public double StatSubjectMarks { get; set; }
public double MisSubjectMarks { get; set; }
public double StarategySubjectMarks { get; set; }
public double BRMSubjectMarks { get; set; }
}
我添加了“使用 Newtonsoft.Json;”并测试了代码。我的输出是这个json
{"StudentName":"behzad","StudentRollNo":1,"StudentClass":2,"MaekringSubjectMarks":1.0,"StatSubjectMarks":1.0,"MisSubjectMarks":1.0,"StarategySubjectMarks":1.0,"BRMSubjectMarks": 1.0}
这样不行吗?这个json有什么问题吗?