Tag: 序列化

将未命名的json数组反序列化为c#中的对象

想知道如何在c#中反序列化以下字符串: “[{\”access_token\”:\”thisistheaccesstoken\”}]” 如果json是:我知道怎么做 “{array=[{\”access_token\”:\”thisistheaccesstoken\”}]}” 我这样做: public class AccessToken { public string access_token {get;set;} public DateTime expires { get; set; } } public class TokenReturn { public List tokens { get; set; } } JavaScriptSerializer ser = new JavaScriptSerializer(); TokenReturn result = ser.Deserialize(responseFromServer); 但是没有那个arrays名称,我不确定。 有什么建议? 谢谢!

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

假设这样的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” […]

C#使用其中的对象列表序列化对象

在C#中,如果我序列化一个包含对象列表的对象,它还会序列化列表吗? 例 public class Move { public string MoveName {get; set;} public List oTags = new List; } public class Tag { public string TagName {get; set;} } 如果我序列化移动,那么存储在move中的所有标签也会被序列化吗? 此外,如果它不会序列化列表,我将如何做到这一点? name Value …

XmlSerializer:将类属性序列化为自定义子元素的属性

我正在使用XmlSerializer 。 我的课: [Serializable] [XmlRoot(ElementName=”MyClass”)] public class MyClass { public string Value; } 我想序列化它,以便Value最终作为名为(例如)“Text”的子元素的属性。 期望的结果: 但是NOT (这会将Value标记为XmlAttribute的效果) 而不是 (这将标记Value作为XmlElement的效果): 3 我该如何实现这一目标? 我知道我可以将Value的类型从string更改为另一个可序列化的自定义类。 不幸的是,我有很多这样的属性,所以我需要创建几十个小类。 有没有更快的解决方案? 编辑: 回应你的意见: 不,并非每个属性都必须序列化为名为“Text”的子元素。 Subelement的名称是独特且明确的。 示例输出XML: blahblahblah 样本类: ! [XmlRoot(ElementName=”Visibility”)] public class Visibility { [XPath(“/site@visible”)] // if only this was possible! public string OnSite { get { return SiteVisible ? “yes” : […]

如何将Newtonsoft Json.NET引用反序列化为单独的单个实例

我有一块看起来像这样的JSON: [ { “$id”: “1”, “Name”: “James”, “BirthDate”: “1983-03-08T00:00Z”, “LastModified”: “2012-03-21T05:40Z” }, { “$ref”: “1” } ] 正如你可以通过$ ref告诉的那样,这个JSON数组包含两次相同的Person(James)。 第二次是对第一次的引用。 我想知道是否有办法将这个JSON 反序列化为一个包含两个詹姆斯人副本的对象。 目前,我正在使用这个: var jsonSerializerSettings = new JsonSerializerSettings() { PreserveReferencesHandling = PreserveReferencesHandling.None, ReferenceLoopHandling = ReferenceLoopHandling.Ignore }; var deserializedPersons = JsonConvert.DeserializeObject<List>(json, jsonSerializerSettings); 但这只是给我一个数组,其中包含相同的Person实例,两次: object.ReferenceEquals(deserializedPersons[0], deserializedPersons[1]) // Evaluates to true 我发现了一个我不满意的解决方法,它只是反序列化JSON字符串,然后使用上面的jsonSerializerSettings序列化它,它将复制JSON中的人,然后再次反序列化它。 这导致我们正在使用的大型物体出现严重减速。 注意 :我知道我可以更改从检索此JSON的API以复制数据,但保留引用可以在通过线路发送响应JSON时节省大量空间。

关于CodePlex表达式树序列化库的观点?

有人尝试过这个代码库并对此有意见吗? http://code.msdn.microsoft.com/exprserialization 10倍

DataContractSerializer与事件/委托字段有关

在我的WPF应用程序中,我使用DataContractSerializer来序列化对象。 我发现它无法序列化已经获得事件或委托声明的类型。 请考虑以下失败的代码: [Serializable] public abstract class BaseClass { public string Name { get; set; } public event PropertyChangedEventHandler PropertyChanged; } public class DerivedClass : BaseClass { public int Age { get; set; } } class Program { static void Main(string[] args) { DerivedClass derivedClass = new DerivedClass {Name = “Test”, Age = 10}; derivedClass.PropertyChanged […]

BinaryFormatter是否应用任何压缩?

当.NET的BinaryFormatter用于序列化对象图时,是否应用了任何类型的压缩? 我在上下文中询问是否应该担心具有许多重复字符串和整数的对象图。 编辑 – 等一下,如果在.NET中实例化字符串,则无需担心重复的字符串,对吧?

反序列化对象列表的问题

我无法反序列化对象列表。 我只能得到一个对象序列化到一个对象但无法获取列表。 我没有得到错误它只返回一个空列表。 这是返回的XML: 1 Building Name Description of Building 这是我的类,我在GetAll方法中反序列化: [Serializable()] [XmlRoot(“location”)] public class Building { private string method; [XmlElement(“id”)] public int LocationID { get; set; } [XmlElement(“name”)] public string Name { get; set; } [XmlElement(“description”)] public string Description { get; set; } [XmlElement(“mubuildingid”)] public string MUBuildingID { get; set; } public List GetAll() […]

.NET / WPF中的通用JSON解析器?

我已经阅读了很多关于如何使用DataContractJsonSerializer将JSON对象反序列化为特定对象的教程。 但是,我想将我的对象反序列化为由字符串,数组或字典组成的字典,例如当我说JsonObject.Parse(myJSONstring)时System.Json与SilverLight一起使用。 是否可以在我的WPF项目中使用System.Json的等价物? (只是一个简短的背景:我正在获取有很多信息的JSON对象,我只是想用一点来填充一个String数组) 干杯 聂