我正在使用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。
任何提示/技巧讚賞。