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有效括号。对于许多数据来说,这有点难以理解:

http://img2.mukewang.com/60964dcb0001fc5407040035.jpg

而且年龄似乎也没有序列化。使用的字符集有问题吗?对我来说,如果我可以检查一下,它非常方便,通过查看文件,所有序列都可以正确序列化。同样,为序列化程序设置缩进设置也没有什么不同。我怎样才能解决这个问题?

扬帆大鱼
浏览 176回答 1
1回答

呼唤远方

我认为您的问题是,您正在使用BsonWriter并期望一个可读的文本文件,请尝试使用a 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();
打开App,查看更多内容
随时随地看视频慕课网APP