Json.Net用奇怪的字符而不是括号序列化?

时间:2018-04-22 13:29:47

标签: c# serialization json.net

我对json.net序列化程序有一个奇怪的问题。这是序列化程序的代码。我认为它没有错:

var info = new Info("Peter", 25);
var filePath = Path.Combine(Application.dataPath, "test.xml");
FileStream stream = new FileStream(Path.Combine(Application.dataPath, "test.xml"), FileMode.Open);

var writer = new BsonWriter(stream);
var serializer = new JsonSerializer();
serializer.Serialize(writer, info);
stream.Close();

和Info类:

public class Info
{
    public string name;
    public int age;

    public Info(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

当这序列化时,一些奇怪的特征出现而不是json有效括号。它对于大量数据来说是不可读的: enter image description here 这个时代似乎也没有被序列化。这是使用过的字符集的问题吗?对我来说非常方便,如果我可以通过查看文件检查所有序列化正确。设置序列化器的缩进设置也不会有所不同。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我认为您的问题是您正在使用BsonWriter并期待可读的文本文件,请尝试使用TextWriter代替:

var info = new Info("Peter", 25);
var filePath = Path.Combine(Application.dataPath, "test.xml");

TextWriter writer = File.CreateText(Path.Combine(Application.dataPath, "test.xml"));
var serializer = new JsonSerializer();
serializer.Serialize(writer, info);
writer.Close();