即使使用文档中的示例,我仍然找不到成功序列化到文件的方法。
代码:
程序.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;
using System.Threading;
namespace TestProject
{
class Program
{
static void Main(string[] args)
{
Item i = new Item
{
Username = "user",
Email = "user@user.com",
Password = "password"
};
File.WriteAllText(@"C:usersuser1.json", JsonConvert.SerializeObject(i));
using (StreamWriter file = File.CreateText(@"C:usersuser1.json"))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(file, i);
}
}
}
}
项目.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestProject
{
public class Item
{
public string Email { get; set; }
public string Password { get; set; }
public string Username { get; set; }
}
}
当我运行Program.cs时,它没有显示任何错误,但JSON没有显示在文件中。
当我运行您的代码时,我会收到一个写入users文件夹的异常。更改到我的主文件夹效果很好。我怀疑这是你的问题。
加起来,你要写两次文件。第一次展示了使用SerializeObject方法获取与WriteAllText一起使用的字符串的示例。第二个代码块正在使用StreamWriter。出于您的目的,两者都是等效的,您只需要使用其中一个。
using (StreamWriter file = File.CreateText(@"C:usersuser1.json"))
{
var jsonResult = JsonConvert.SerializeObject(i);
file.WriteLine(jsonResult);
}