0

我正在从文件中读取 json 并序列化为任何对象,如下所示:

MyObject o = myjson.FromJson<MyObject>();

json 文本是正确的,因为我在移至 ServiceStack 之前使用的是 Newtonsoft.Json。

但是,在序列化之后,对象 'o' 没有被相应地设置(即为空或在对象的构造函数中设置了默认值)。

是类:

public class Options
{
    public string Email;
    public string Password;
    public string Answer;
    //etc...

    public Options()
    {
        this.Email = "default";
        this.Password = "default";
        //etc...
    }
}

有什么问题?

4

2 回答 2

0

假设您的 JSON 在文本文件中。

using Newtonsoft.Json;

    var item = @"C:\someJSON.txt";
    var op = JsonConvert.DeserializeObject<SavedOpData>(File.ReadAllText(item));

我的班级SavedOpData

   internal partial class SavedOpData
        {
            internal class AppUri
            {
                public string file_name;
                public string file_uri;
                public int file_size;
                public string file_hash;
            }
        }

要将其序列化回 JSON,请执行以下操作:

var serialized = JsonConvert.SerializeObject(SavedOpData);

假设SavedOpData是我在上面发布的类的一个实例,并且它已经填充了数据。

于 2014-02-19T14:37:09.170 回答
0

默认情况下, ServiceStack 不会序列化公共字段,但您可以通过以下方式启用它:

JsConfig.IncludePublicFields = true;
于 2014-02-19T14:40:16.347 回答