JsonConvert.DeserializeObject - 处理空字符串



我正在使用 Json.NET 来序列化要发送到紧凑框架 3.5 设备的对象(幸运的是我)。

我在紧凑型设备上的课程是:

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

发送到设备的返回 Json 是(请注意 null 以获取说明):

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);

问题在于,在紧凑的框架上,它无法将值放入结果中。稍后在代码中引用时导致空引用的指令。

我正在使用Newtonsoft.Json.Compact v3.5.0.0(我认为这是最新版本),在服务器上我使用的是Newtonsoft.Json 4.5.0.0。

问题

我怎样才能:

a) 更改服务器代码以在字符串为 null 的地方粘贴 " 而不是 null 值。

b) 更改紧凑的框架代码,以便能够处理空值字符串。

我尝试过的事情

我一直在浏览 Json.Net 的文档/示例,并尝试了许多东西,例如实现DefaultContractResolver和自定义JsonContract。 也许答案就在这些中,但我对这个级别的 Json.Net 缺乏了解并没有帮助!!

更多信息

我正在使用System.Runtime.Serialization.Json.DataContractJsonSerializer进行服务器端序列化,它在空字符串的情况下生成引号。 不幸的是,我需要更大的序列化灵活性,这就是我开始使用 Json.Net 的原因。

任何提示/提示表示赞赏。

好的 - 没有答案,但是昨天下午我上床睡觉了,今天早上再次搜索发现:在 JSON.NET 中序列化 null,这几乎回答了我的问题。

相关内容

  • 没有找到相关文章

最新更新