C# 将JSON文件中的数据序列化为字段
我有一个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文件看起来像 {
{
"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"
}
}