C# 将JSON文件中的数据序列化为字段

C# 将JSON文件中的数据序列化为字段,c#,.net,json,wpf,serialization,C#,.net,Json,Wpf,Serialization,我有一个JSON文件,如下所示 { "student": { "fullName": "No Name", "id": 0001 }, "message": "Lets see if this is displayed!" } 我想在我的WPF应用程序中编写一些逻辑,当有人在填充相应的文本字段后单击submit按钮时,这些值将被序列化到这个JSON中 例如,如果有人输入Dwayne作为名称,2222作为ID,Hello作为消息,我希望JSON文件看起来像 {

我有一个JSON文件,如下所示

{
  "student": {
    "fullName": "No Name",
        "id": 0001
  },
  "message": "Lets see if this is displayed!"
}
我想在我的WPF应用程序中编写一些逻辑,当有人在填充相应的文本字段后单击submit按钮时,这些值将被序列化到这个JSON中

例如,如果有人输入Dwayne作为名称,2222作为ID,Hello作为消息,我希望JSON文件看起来像

{
  "student": {
    "fullName": "Dwayne",
        "id": 2222 
  },
  "message": "Hello"
}
以下是我迄今为止在代码背后实现的内容

我有StudentData.cs课程

 public class StudentData
    {
        public StudentData()
        {

        }

        public string Name { get; set; }

        public string ID { get; set; }

        public string Message { get; set; }

    }
在执行save的xaml.cs中,我获取必要的数据并将其保存为对象

 string fullName = textName.Text;
            string ID = textId.Text;
            string message = textMessage.Text;

            StudentData stuData = new StudentData();
            stuData .Name = fullName;
            stuData .ID = ID;
            stuData .Message = message;

有人能帮我做下一步吗?

您可以使用Newtonsoft.json库将对象转换为json

var student = JsonConvert.SerializeObject(StudentData);

您应该使用JSON序列化包,我更喜欢Newtonsoft。

然后将数据序列化为JSON,并按如下方式编写:

List<StudentData> myStudentData = new List<StudentData>();
//Add data

string json = JsonConvert.SerializeObject(myStudentData);
File.WriteAllText("c:\\path\\to\\yourfile.json", json );
然后你当然要改变你的创造和输出的对象,像这样

RootObject root = new RootObject();
root.message = "Hello";
List<StudentData> myStudentData = new List<StudentData>();

//add data to student
root.student = myStudentData;
string json = JsonConvert.SerializeObject(root);
File.WriteAllText("c:\\path\\to\\yourfile.json", json );

如何用新值覆盖现有文件@RishiLook:我一直得到System.NullReferenceException:“对象引用未设置为对象的实例。”当我尝试创建类型为Root Object`RootObject Root=new RootObject的对象时出现异常;root.student.fullName=textBoxFirstName.Text`知道为什么可能是Jason吗?@devss更新为完整显示。我还更新了RootObjectWell,感谢您的努力,但您不能添加root.student.AddmyStudentData;因为这两种类型不同:@Devss抱歉,输入错误。再试一次
RootObject root = new RootObject();
root.message = "Hello";
List<StudentData> myStudentData = new List<StudentData>();

//add data to student
root.student = myStudentData;
string json = JsonConvert.SerializeObject(root);
File.WriteAllText("c:\\path\\to\\yourfile.json", json );
{
  "student": {
    "fullName": "Dwayne",
    "id": 2222,
    "message": "Hello" 
  }
}