Servicestack.Text没有解析json

时间:2014-02-19 14:25:36

标签: c# json servicestack-text

我正在从文件中读取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...
    }
}

有什么不对?

2 个答案:

答案 0 :(得分: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是我在上面发布的类的实例,并且已经填充了数据。

答案 1 :(得分:0)

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

JsConfig.IncludePublicFields = true;