Tag:

C#Newtonsoft反序列化JSON数组

我正在尝试使用Newtonsoft对数组进行反序列化,因此我可以在列表框中显示来自基于云的服务器的文件,但无论我尝试什么,我总是会收到此错误: Newtonsoft.Json.JsonReaderException:’解析值时遇到意外的字符:[。 路径'[0] .priv’,第4行,第15位。’ 这是一个尝试反序列化的示例: [ { “code”: 200, “priv”: [ { “file”: “file.txt”, “ext”: “txt”, “size”: “104.86” }, { “file”: “file2.exe”, “ext”: “exe”, “size”: “173.74” }, ], “pub”: [ { “file”: “file.txt”, “ext”: “txt”, “size”: “104.86” }, { “file”: “file2.exe”, “ext”: “exe”, “size”: “173.74” } ] } ] 我尝试使用像这样的C#类: public class ListJson { [JsonProperty(“pub”)] […]

在C#中序列化对象并获取字节流

我有一个对象,一个Serializable类的实例。 我想知道如何将这个对象作为字节流? 我知道我可以使用BinaryFormatter然后使用Serialize方法,但是这个方法需要一个serializationStream来编写序列化对象。 我希望能够在特定位置的文件/流中编写它,所以我想做类似的事情: obj = new Something(); // obj is serializable byte[] serialized = obj.serialize(); [*] file.write(position, serialized) 有什么方法可以做[*] ,取一个对象序列化的字节?

如何使用许多子节点反序列化XML

如果我的XML是这样的: Jerry Joe Sam 我可以将它序列化为这个类: [DataContract(Namespace = “”, Name = “dict”)] public class Item { [DataMember(Name = “Name”)] public string Name { get; set; } [DataMember(Name = “Array”)] public IEnumerable Children { get; set; } } 但是,如果我的XML是这样的呢? Jerry Joe Sam 这不起作用: [DataContract(Namespace = “”, Name = “Item”)] public class Item { [DataMember(Name = “Name”)] public […]

从字符串中删除所有“隐形”字符?

我正在编写一个小类来读取文件中的键值对列表并写入Dictionary 。 此文件将具有以下格式: key1:value1 key2:value2 key3:value3 … 这应该很容易,但是由于用户要手动编辑这个文件,我应该如何处理空格,标签,额外的线条跳转等等? 我可以使用Replace删除空格和制表符,但是,是否还有其他“隐形”字符我缺少? 或者我可以删除所有不是字母数字的字符,“:”和行跳转(因为行跳转是将一对与另一对分开),然后删除所有额外的行跳转。 如果是这样,我不知道如何删除“all-except-some”字符。 当然我也可以查看“key1:value1:somethingelse”之类的错误。 但是这样的事情并不重要,因为它显然是用户的错,我只会显示“无效格式”消息。 我只是想处理基本的东西,然后将所有这些放在try / catch块中以防万一出错。 注意:我根本不需要任何空格,即使在键或值内也是如此。

WCF列表序列化/反序列化错误

我有以下ServiceContract和DataContract类: [ServiceContract] public interface IWcfService { [OperationContract] Response GetData(); } [DataContract] public class Response { [DataMember] public Dictionary Data { get; set; } } 当Response.Data字典的值为int,string,double或任何其他“简单”基元类型时,WCF可以成功序列化该对象。 但是当Response.Data字典的值为List 类型时,客户端在接收到数据并尝试反序列化时抛出以下exception: Message=The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:GetDataResult. The InnerException message was ‘Error in line […]

使用DataContractJsonSerializer自定义DateTime序列化/反序列化

如何使用DataContractJsonSerializer将默认的JSON DateTime序列化/反序列化更改为自定义格式,以用于对象图中的所有DateTime属性? Json.Net库处理这个,但我不能在这个项目中使用它。 我尝试过IDataContractSurrogate但我无法访问DateTimes的值 – >字符串转换。 模型和预期的JSON是: [DataContract] public class Client { [DataMember(Name = “id”)] public int Id {get; set; } [DataMember(Name = “name”)] public string Name {get; set; } [DataMember(Name = “contacts”)] public IList Contacts {get; set; } [DataMember(Name = “created”)] public DateTime Created {get; set; } [DataMember(Name = “changed”)] public DateTime Changed {get; […]

序列化花费了太多时间

这里的序列化需要大约3到8秒的代码取决于对象类型。 我想将此结果存储到Redis中进行缓存。 但这项行动耗时太长。 对于反序列化也是如此。 public byte[] SerializeObject(object objectToSerialize) { try { //If object to serialize is null then return null if (objectToSerialize == null) return null; byte[] result; //Create memory stream and use it for Serializing object using (var ms = new MemoryStream()) { using (var zs = new GZipStream(ms, CompressionMode.Compress, true)) { var bf […]

如何在“设置”对象的反序列化时更新WPF UI

我的目标是这样做:用户选择设置文件,读取设置并相应地更新UI。 显然也应该可以节省。 我的程序目前不是WPF / XAML,现在这样做意味着需要大量重复并在需要新设置时添加工作。 所以有人告诉我WPF / XAML是要走的路,我调查并喜欢它,但我仍然不确定如何做我想要的。 WPF / XAML的优点当然是数据绑定,但如果我想读取整个设置文件,我可能会用新的设置替换旧的设置对象。 我可以让WPF程序对此做出反应并根据某些给定的数据绑定更新字段吗? 我最感兴趣的是这是好的设计,如果不是 – 那是什么。

尽管元素值包含混合内容,但将元素值反序列化为字符串

假设这样的XML: content content 还有一个类: [Serializable] [XmlType(AnonymousType = true, Namespace = “http://foo/bar”)] [XmlRoot(ElementName = “Root”, Namespace = “http://foo/bar”, IsNullable = false)] public class MyRoot { public string FieldBasic { get; set; } public string FieldComplex { get; set; } } 如何将反序列化为中的字符串? 它在内部找到HTML时失败。 我想让它给我一个包含这个内容的字符串: content 如果我将FieldComplex声明为public object FieldComplex (即xsd:anyType ),它有点工作,我得到一个XMLNode[] ,我可以使用它。 但我需要FieldComplex为序列化的类型字符串,因为序列化XML不包含HTML,它将如下: content content 将FieldComplex声明为对象将在元素上插入这些属性: xmlns:q1=”http://www.w3.org/2001/XMLSchema” p3:type=”q1:string” […]

如何将参数传递给构造函数反序列化json

在使用Newtonsoft.Json反序列化对象时,将一些父实例传递给构造函数时遇到一个小问题。 我们假设我有以下课程 public class A { public string Str1 { get; set; } public IList Bs { get; set; } } public class B { public B(A a) { // a should not be null! Console.WriteLine(a.Str) } } 现在我对这个对象a serailze而不是反序列化: A a = new A() a.Bs = new List() a.Bs.Add(new B(a)); a.Bs.Add(new B(a)); a.Bs.Add(new B(a)); […]