Tag: json.net

序列化属性,但不要在Json.Net中反序列化属性

虽然我发现了许多方法来反序列化特定属性,同时阻止它们序列化,但我正在寻找相反的行为。 我发现有很多问题要求反过来: 使用json.net进行属性反序列化但不能序列化 我可以指示Json.NET反序列化,但不能序列化特定属性吗? JSON.Net – 仅在序列化时使用JsonIgnoreAttribute(但在反序列化时不使用) 如何序列化特定属性,但阻止它反序列化回POCO? 是否有可用于装饰特定属性的属性? 基本上我正在寻找与反序列化的ShouldSerialize *方法相当的方法。 我知道我可以写一个自定义转换器,但这似乎有点矫枉过正。 编辑: 这里有更多的背景。 这背后的原因是我的class级看起来像: public class Address : IAddress { /// /// Gets or sets the two character country code /// [JsonProperty(“countryCode”)] [Required] public string CountryCode { get; set; } /// /// Gets or sets the country code, and province or state code delimited […]

在Windows Mobile上有没有可以在C#中读取JSON的库?

我试图找到一个库来解析Windows Mobile上的C#上的JSON(使用Visual Studio 2005)。 我发现允许我在C#(litjson和Jayrock)中解析JSON的库在Windows Mobile上不起作用,它们需要.NET紧凑框架中不存在的类。 有没有我忽略过的图书馆? 或者在这种情况下还有另一种解析JSON的简单方法吗?

使用Json.NET序列化为NDJSON

是否可以使用Json.NET序列化为NDJSON ( Newline Delimited JSON)? Elasticsearch API使用NDJSON进行批量操作,我发现没有任何迹象表明任何 .NET库都支持这种格式。 这个答案提供了反序列化NDJSON的指导,并且注意到可以独立地序列化每一行并加入换行符,但我不一定称之为支持 。

反序列化DataTable后,DateTime列类型变为String类型

我有一个DataTable有两列。 ShipmentDate(DateTime)和Count(Int)。 在我反序列化字符串后,我注意到如果第一个itemarray值为null,ShipmentDate的类型就变成了字符串。 请查看以下示例。 除第一个数组项外,json字符串都有相同的数据。 string jsonTable1 = “[{\”ShipmentDate\”:null,\”Count\”:3},{\”ShipmentDate\”:\”2015-05-13T00:00:00\”,\”Count\”:13},{\”ShipmentDate\”:\”2015-05-19T00:00:00\”,\”Count\”:1},{\”ShipmentDate\”:\”2015-05-26T00:00:00\”,\”Count\”:1},{\”ShipmentDate\”:\”2015-05-28T00:00:00\”,\”Count\”:2}]”; string jsonTable2 = “[{\”ShipmentDate\”:\”2015-05-13T00:00:00\”,\”Count\”:13},{\”ShipmentDate\”:null,\”Count\”:3},{\”ShipmentDate\”:\”2015-05-19T00:00:00\”,\”Count\”:1},{\”ShipmentDate\”:\”2015-05-26T00:00:00\”,\”Count\”:1},{\”ShipmentDate\”:\”2015-05-28T00:00:00\”,\”Count\”:2}]”; DataTable tbl1 = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonTable1); DataTable tbl2 = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonTable2); Console.WriteLine(tbl1.Columns[“ShipmentDate”].DataType); Console.WriteLine(tbl2.Columns[“ShipmentDate”].DataType); 在我的场景中,第一个项目数组的ShipmentDate可以为null,并通过将其转换为字符串类型来创建问题。 我有一种情况,数据表的模式是动态的。 我不能创建强类型的类。

如何使用Json.net(C#)反序列化从Exception类派生的对象?

我正在尝试反序列化从Exception类派生的对象: [Serializable] public class Error : Exception, ISerializable { public string ErrorMessage { get; set; } public Error() { } } Error error = JsonConvert.DeserializeObject(“json error obj string”); 它给了我错误: ISerializable类型’type’没有有效的构造函数。

JSON.Net Xml序列化误解了数组

我有一些自动生成的xmls,其中xml的某些部分可能有多行,有些可能没有。 结果是,如果有一行返回一个json节点,并且如果我有多行,则返回一个带有json节点的数组。 xmls可能看起来像这样 Testing 0 或者有多行 Update Documentation 0.5 2013-01-31 00:00:00 2013-01-01 00:00:00 Write jQuery example 0.05 2013-06-30 00:00:00 2013-01-02 00:00:00 使用时将这些序列化为JSON JsonConvert.SerializeXmlNode(xmldoc, Formatting.Indented); 第一个xml变成了这个 { “List”: { “Content”: { “Row”: { “@Index”: “0”, “Title”: “Testing”, “PercentComplete”: “0”, “DueDate”: null, “StartDate”: null } } } } 第二个这个 { “List”: { “Content”: { “Row”: [{ “@Index”: […]

你有一个包含短划线的属性名称吗?

是否可以创建一个包含短划线字符的属性名称的对象? 我正在创建一个匿名对象,以便我可以使用Json.Net将其序列化为Json,并且我需要的其中一个属性包含一个’ – ‘破折号字符。 我想要的一个例子是: var document = { condtions = new { acl = “public-read”, bucket = “s3-bucketname”, starts-with = “test/path” } }; 我知道我可以在创建对象时用下划线替换短划线,然后在序列化字符串中替换它们,但是想知道在没有这种解决方法的情况下是否有语言方法可以执行此操作。

自定义Json序列化类

我的代码结构如下。 public class Stats { public string URL { get; set; } public string Status { get; set; } public string Title { get; set; } public string Description { get; set; } public int Length { get; set; } } 和 public class UrlStats { public string URL { get; set; } public int […]

如何使用json.net将c#通用列表转换为json?

我正在将我的数据表转换为c#通用列表。 DataTable dt = mydata(); List list = dt.AsEnumerable().ToList(); 现在我如何使用json.net将此list转换为json? 任何建议。 json格式的样本应该是这样的, {“Table” : [{“userid” : “1”,”name” : “xavyTechnologies”,”designation” : “”, “phone” : “9999999999”,”email” : “test@test.com”,”role” : “Admin”,”empId” : “”, “reportingto” : “”},{“userid” : “2”,”name” : “chendurpandian”,”designation” : “softwaredeveloper”,”phone” : “9566643707”,”email” : “chendur.pandia@gmail.com”, “role” : “Super User”,”empId” : “1”,”reportingto” : “xavyTechnologies”}, {“userid” : “3”,”name” : […]

使用Json.NET将JSON反序列化为对象

我正在使用新的StackOverflow API 。 不幸的是,我的JSON有点弱,所以我需要一些帮助。 我正在尝试反序列化用户的这个JSON: {“user”:{ “user_id”: 1, “user_type”: “moderator”, “creation_date”: 1217514151, “display_name”: “Jeff Atwood”, … “accept_rate”: 100 }} 到我用JsonProperty属性修饰的对象: [JsonObject(MemberSerialization.OptIn)] public class User { [JsonProperty(“user_id”, Required = Required.Always)] public virtual long UserId { get; set; } [JsonProperty(“display_name”, Required = Required.Always)] public virtual string Name { get; set; } … } 我得到以下exception: Newtonsoft.Json.JsonSerializationException:在JSON中找不到必需属性’user_id’。 这是因为JSON对象是一个数组吗? 如果是这样,我如何将其反序列化为一个User对象? […]