即使使用Documentation中的示例,我仍然找不到成功序列化到文件的方法。
代码:
Program.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:\users\user1.json", JsonConvert.SerializeObject(i));
using (StreamWriter file = File.CreateText(@"C:\users\user1.json"))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(file, i);
}
}
}
}
Item.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没有显示在文件中。
答案 0 :(得分:1)
当我运行你的代码时,我得到一个异常写入users文件夹。更改到我的主文件夹工作正常。我怀疑这是你的问题。
另外,你要两次写文件。第一次显示了使用SerializeObject方法获取与WriteAllText一起使用的字符串的示例。第二个代码块使用StreamWriter。出于您的目的,两者都是等效的,您只需要使用其中一个。
答案 1 :(得分:0)
using (StreamWriter file = File.CreateText(@"C:\users\user1.json"))
{
var jsonResult = JsonConvert.SerializeObject(i);
file.WriteLine(jsonResult);
}