2014-02-19 44 views
0

我從文件中讀取一個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... 
    } 
} 

什麼可能是錯誤的?

+1

http://www.sscce.org/ –

+0

@ L.B幹得好... – Dayan

回答

0

ServiceStack不序列公共領域默認,但你可以啓用它:

JsConfig.IncludePublicFields = true; 
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是我上面貼的類的實例和它有數據已經​​填充。