Tag: 反序列化

如何在C#.NET(win7手机)中使用’DataContractJsonSerializer’读入’嵌套’Json文件?

我有一个问题,如果我的json文件看起来像这样 {“Numbers”:“45387”,“Words”:“space buckets”} 我可以读得很好,但如果它看起来像这样: {“Main”:{“Numbers”:“45387”,“Words”:“space buckets”}, “Something”:{“Numbers”:“12345”,“Words”:“Kransky”}} 我没有收到任何信息。 我不知道如何在Main和Something之间切换! 使用此代码加载带有此“嵌套”信息的JSON, var ser = new DataContractJsonSerializer(typeof(myInfo)); var info = (myInfo)ser.ReadObject(e.Result); //用于保存我的信息的类 [DataContract] public class myInfo { [DataMember(Name=”Numbers”)] public int number { get; set; } [DataMember(Name=”Words”)] public string words { get; set; } } 导致类返回空。 我已经尝试将组名添加到DataContract,例如。 [DataContract,Name =“Main”]但这仍然导致类值为空。 我也尝试将“main”添加到序列化器overloader,例如。 var ser = new DataContractJsonSerializer(typeof(myInfo),“Main”); 这会导致错误:期望元素’Main’来自命名空间”..遇到’Element’,名称为’root’,命名空间”。 我更喜欢使用提供的json阅读器。 我已经研究过json.NET,但是发现编写json和sparse有关读取信息的文档很重要。 […]

使用XmlReader和xsd.exe中的类反序列化Xml

好的,我在尝试学习XmlSerializer的过程中遇到了一些障碍。 我已经遵循了所有建议的步骤,但我的程序没有返回任何内容,或者返回null。 我创建了一个XML文件,如下所示: 然后我使用xsd.exe生成.xsd文件,它是: 创建架构后,我再次使用xsd.exe为我自动生成类,即: /// [System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”, “2.0.50727.3038”)] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute(“code”)] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)] [System.Xml.Serialization.XmlRootAttribute(Namespace = “”, IsNullable = false)] public partial class WeeklyJobs { private WeeklyJobsDailyJobs[] itemsField; /// [System.Xml.Serialization.XmlElementAttribute(“DailyJobs”, Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] public WeeklyJobsDailyJobs[] Items { get { return this.itemsField; } set { this.itemsField = value; } } } /// [System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”, “2.0.50727.3038”)] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] […]

反序列化动态JSON文件C#NewtonSoft.JSON

正在进行反序列化动态JSON文件,该文件可能包含2个单独的类,我不知道数组中将包含哪种类型的数据。 问题是,我将根对象反序列化为“Base”类型,“subtests”对象被反序列化为“Subtest”,但“subtests”数组可以是“Base”类型或“Subtest”类型。 问题:我如何以编程方式确定如果对象包含“subtest”,我将反序列化为Base,如果不包含,则应将其反序列化为“Subtest”? 因为我的时间很短,所以我非常感谢这方面的帮助。 (编辑:添加注释以显示每个对象应反序列化的类型)以下是一个示例(JSON DATA): { // Deserializes to type “Base” “host”: “123456”, “last_time”: “2014-09-15 07:04:49.205000”, “name”: “myName”, “result”: “FAIL”, “serial”: “12345”, “start_time”: “2014-09-15 06:53:36.976000”, // Deserializes to type “List” “subtests”: [ { “data”: { “moredata”: { “ver”: “123”, “real”: 123 } }, “description”: “Description of Data”, “host”: “123456”, “last_time”: “2014-09-15 20:32:31.095000”, “name”: “testname.py”, […]

无法使用C#客户端反序列化datetime属性Neo4j

我正在尝试使用C#客户端从Neo4j中获取强类型对象。 这一切都有效,直到我添加DateTime属性。 我已成功将数据插入Neo4j数据库,我可以使用控制台查看它。 我也可以查询数据,但我不能返回任何强类型对象,因为反序列化似乎失败了。 我正在使用参数来插入数据: _graphClient.Cypher .WithParams(new { id = node.Id, createdAt = node.CreatedAt, lastModified = node.LastModified }) .Create(“(c { ” + “Id: {id}, ” + “CreatedAt: {createdAt}, ” + “LastModified: {lastModified} } )”) 我获取数据的查询非常基本: nodes = _graphClient.Cypher .Match(“(n)”) .Return((n) => n.As()).Results.ToList(); 但后来我收到一个错误…… 日志文件说明以下内容: 参数名称:content —> Newtonsoft.Json.JsonReaderException:无法将字符串转换为DateTime:17-9-2015 21:57:14 +00:00。 路径’a’,第1行,第32位。 数据看起来像这样(从日志中输入): “data” : { “Id” […]

使用C#中的DataContractJsonSerializer将子字段作为字符串反序列化JSON对象

这是我的JSON: { “Name”: “Eli”, “Age”: 4, “Children”: { “Moshe”: { “Age”: 6, “Characteristics”: “Nice;Good;” }, “Yossi”: { “Age”: 3, “Characteristics”: “Hero;Brave” } } } 这是我的JSON反序列化function: public static object FromJSON(string json) { using (MemoryStream stream = new MemoryStream(Encoding.Unicode.GetBytes(json))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); return serializer.ReadObject(stream); } } 我正在尝试将其序列化为Person对象: [DataContract] public class Person { [DataMember] public […]

如何在c#对象中反序列化这个嵌套的xml

我使用silverlight ot实现xml的反序列化,如下所示: String xmlString = 1 yes 1 skew skew_side 0 automodel 在我尝试实现这一点时,我觉得我在课堂上有一些东西。 课程如下: [XmlRoot(ElementName = “attributes”)] public class Attributes { [XmlElement(“disableOthers”)] public List DisableOthers { get; set; } } [XmlRoot(ElementName = “disableOthers”)] public class DisableOthers { [XmlElement(“disableOthers”)] public List DisableOther { get; set; } } [XmlRoot(ElementName = “disableOther”)] public class DisableOther { [XmlElement(“disablingitem”)] public […]

在JSON.NET中反序列化具有不同名称的对象列表

我从一个网站上获取我的数据,该网站返回一个我不太熟悉的.json格式。 我一直在寻找解决方案几个小时,我必须使用术语。 json的格式如下: [ { “Foo”: { “name”: “Foo”, “size”: { “human”: “832.73kB”, “bytes”: 852718 }, “date”: { “human”: “September 18, 2017”, “epoch”: 1505776741 }, } }, { “bar”: { “name”: “bar”, “size”: { “human”: “4.02MB”, “bytes”: 4212456 }, “date”: { “human”: “September 18, 2017”, “epoch”: 1505776741 } } }] 我正在使用Newtonsoft的JSON.NET,我似乎无法创建一个允许我反序列化它的数据结构,因为它是具有不同名称的类数组。 具体而言,属性名称”Foo”和”bar”在运行时可能不同。 JSON层次结构中其他位置的属性名称是已知的。

在C#WebForm上反序列化动态JSON数组

嗨,我正在我的API上生成一个JSON,我试图在我的Web应用程序中使用代码隐藏C#,但我无法反序列化。 我的JSON有一个带有JSON数组的对象,数组中的元素是动态的,所以我不能用这些项创建一个固定的类,因为我的JSON可以有N个项目。 { “MAINOBJET”: [{ “ITEM1”: “23800”, “ITEM2”: “Dahl; Police”, “ITEM3”: “test@test.net” }, { “ITEM1”: “23802”, “ITEM2”: “Steve ; Police”, “ITEM3”: “test2@test.net” }] } 那么如何将其反序列化为DataTable,列表或字典呢? 谢谢

将xml反序列化为类,遇到列表的问题

我有以下XML 我正在尝试编写可以将其反序列化的类,这就是我所拥有的: [XmlRoot(“map”)] public class MyMap { [XmlAttribute(“version”)] public decimal Version { get; set; } [XmlElement(“properties”)] public List Properties { get; set; } } public class MyProperty { [XmlAttribute(“name”)] public string Name { get; set; } [XmlAttribute(“value”)] public string Value { get; set; } } 问题是我似乎无法读取属性列表,我只得到一个条目,它在Name和Value中都为null。 我需要设置一些神奇的属性来使其工作吗?

从Web服务反序列化PHP数据

我正在从Web服务接收数据。 数据采用以下格式: a:5:{s:7:”request”;s:14:”94.190.179.118″;s:6:”status”;i:206;s:12:”currencyCode”;s:3:”BGL”;} 我需要解析输入。 你能告诉我这是什么格式以及解析它们的最简单方法是什么? … 我可以通过’;’分割字符串来解析 并在各个元素中搜索所需的键和以下值。 (可能,但不好的解决方案)可能数据是以标准格式序列化的,可以在字典中反序列化。