2013-01-24 141 views
1

我正在使用Json.NET序列化一個對象發送到一個緊湊框架3.5設備(幸運我)。JsonConvert.DeserializeObject - 處理空字符串

我的緊湊型設備類:

public class Specification 
{ 
     public Guid Id { get; set; } 
     public String Name { get; set; } 
     public String Instructions { get; set; } 
} 

JSON的返回發送到設備(注意有關說明空):

string json = @"{""Name"":""Test"",""Instructions"":null,""Id"":""093a886b-8ed4-48f0-abac-013f917cfd6a""}"; 

...和方法的用於反序列化JSON是...

var result = JsonConvert.DeserializeObject<Specification>(json); 

在服務器上我使用以下命令來創建JSON:

var serializer = new JsonSerializer(); 
serializer.Formatting = Formatting.None; 
serializer.Serialize(context.HttpContext.Response.Output, this.Data); 

的問題是,在緊湊的框架,它的失敗把一個值時,它後面的代碼中引用這是造成空引用result.Instructions。

我正在使用Newtonsoft.Json.Compact v3.5.0.0(我認爲這是最新版本),並在服務器上使用Newtonsoft.Json 4.5.0.0。

問題

如何,我不是:

一)修改服務器代碼貼在一個字符串爲空空值的「」來代替。

b)將緊湊框架代碼更改爲能夠處理空值字符串。

事情我已經試過

我一直在尋找通過的文件/和Json.Net的例子已經試過千頭萬緒像實施DefaultContractResolver,和一個自定義JsonContract。也許答案在於那些,但是我對Json.Net在這個級別上的理解不夠幫助!

更多信息

我用System.Runtime.Serialization.Json.DataContractJsonSerializer服務器端序列化,這並在空字符串時生成的報價。不幸的是,我需要更多的序列化靈活性,這就是爲什麼我開始使用Json.Net。

任何提示/技巧讚賞。

回答