Tag: 反序列化

在.NET中parsing大的json文件

我已经使用Json.Net的“JsonConvert.Deserialize(json)”方法到目前为止工作得很好,说实话,我不需要什么比这更多。 我正在从不同的URL下载JSON内容的背景(控制台)应用程序,然后将结果反序列化为.Net对象列表。 using (WebClient client = new WebClient()) { string json = client.DownloadString(stringUrl); var result = JsonConvert.DeserializeObject<List<Contact>>(json); } 上面的简单代码片段可能看起来并不完美,但是它完成了这项工作。 当文件较大时(15000个联系人 – 48 MB文件),JsonConvert.DeserializeObject不是解决scheme,并且该行引发JsonReaderException的exceptiontypes。 下载的json是一个数组,这是一个样本的样子。 Contact是反序列化的json对象的容器类。 [ { "firstname": "sometext", "lastname": "sometext" }, { "firstname": "sometext", "lastname": "sometext" }, { "firstname": "sometext", "lastname": "sometext" }, { "firstname": "sometext", "lastname": "sometext" } ] 我最初的猜测是内存耗尽。 出于好奇,我试图把它parsing为JArray,这也造成了同样的例外。 我已经开始深入Json.Net文档并阅读类似的线程。 由于我还没有设法解决问题,所以我决定在这里发表一个问题。 […]

Newtonsoft JSON反序列化

我的JSON如下所示: {"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]} 我发现了C#的Newtonsoft JSON.NET反序列化库。 我试图使用它如下: object JsonDe = JsonConvert.DeserializeObject(Json); 如何访问JsonDe对象以获取所有“types”数据? 我试了一个循环,但它不工作,因为该对象没有一个枚举。

VB.net JSON反序列化

我有以下的JSONstring反序列化: [{"application_id":"1","application_package":"abc"},{"application_id":"2","application_package":"xyz"}] 我正在使用DataContractJsonSerializer方法。 它是由一系列项目组成的,我无法find一个使用VB.Net的例子,可以反序列化这个结构。 我有以下应用程序类来存储此信息: <DataContract(Namespace:="")> _ Public Class ApplicationItem <DataMember(Name:="application_id")> Public Property application_id As String <DataMember(Name:="application_package")> Public Property application_package As String End Class

JSON到TypeScript类的实例?

我做了相当多的研究,但是我对所发现的东西并不满意。 只是为了确定这是我的问题:什么是实际上最健壮和优雅的自动解决scheme反序列化JSON到TypeScript运行时类实例? 说我有这个class级: class Foo { name: string; GetName(): string { return this.name }; } 并说我得到这个JSONstring的反序列化: {"name": "John Doe"} 获取名为“John Doe”的名称和GetName()方法的Foo类实例的最佳和最可维护的解决scheme是什么? 我非常具体地问,因为我知道很容易反序列化为纯数据对象。 我想知道是否有可能得到一个工作方法的类实例,而不必做任何手动parsing或任何手动数据复制。 如果完全自动化的解决scheme是不可能的,那么下一个最好的解决scheme是什

我可以在属性中指定path来将我的类中的属性映射到我的JSON中的子属性?

有一些代码(我不能改变),它使用Newtonsoft.Json的DeserializeObject<T>(strJSONData)从Web请求中获取数据并将其转换为类对象(我可以更改类)。 通过使用[DataMember(Name = "raw_property_name")]装饰我的类属性,我可以将原始JSON数据映射到我的类中正确的属性。 有没有一种方法可以将JSON复杂对象的子属性映射到一个简单的属性? 这是一个例子: { "picture": { "id": 123456, "data": { "type": "jpg", "url": "http://www.someplace.com/mypicture.jpg" } } } 我不关心其他的图片对象,除了URL,所以不想在我的C#类中设置一个复杂的对象。 我真的只想要像这样的东西: [DataMember(Name = "picture.data.url")] public string ProfilePicture { get; set; } 这可能吗?

如何使用JSON.NET反序列化为嵌套/recursionDictionary和List?

我需要将复杂的JSON blob反序列化为标准的.NET容器,以便在不知道JSON的代码中使用。 它期望的东西是标准的.NETtypes,特别是Dictionary [string,object]或List [object],其中“object”可以是原始的或recursion的(Dictionary或List)。 我不能使用静态types来映射结果,JObject / JToken不适合。 理想情况下,会有一些方法(通过契约)来将原始的JSON转换成基本的.NET容器。 我已经search过任何方式来哄JSON.NET解串器创build这些简单的types,当它遇到“{}”或“[]”,但很less成功。 任何帮助感激!

将XML反序列化为使用dynamic的对象

是否有可能反序列化未知的XML像下面的对象? var xml = @"<Students><Student><Name>Arul</Name><Mark>90</Mark></Student></Students>"; var serializer = new XmlSerializer(typeof(DynamicObject)); dynamic students = serializer.Deserialize(new XmlTextReader(new StringReader(xml)));

使用Newtonsoft反序列化JSON到.NET对象(或LINQ到JSON也许?)

我知道有一些关于牛顿软件的post,所以希望这不完全是一个重复…我试图将由Kazaa的API返回的JSON数据转换成一个很好的对象 WebClient client = new WebClient(); Stream stream = client.OpenRead("http://api.kazaa.com/api/v1/search.json?q=muse&type=Album"); StreamReader reader = new StreamReader(stream); List<string> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(reader.Read().ToString()); foreach (string item in list) { Console.WriteLine(item); } //Console.WriteLine(reader.ReadLine()); stream.Close(); 那JsonConvert线只是我正在尝试的最近的一个…我不是很明白,希望通过问你们来消除一些步法。 我最初试图将其转换成字典或其他东西…实际上,我只需要在那里抓住一些值,所以通过文档判断,也许Newtonsoft的LINQ to JSON可能是一个更好的select? 思考/链接? 以下是JSON返回数据的示例: { "page": 1, "total_pages": 8, "total_entries": 74, "q": "muse", "albums": [ { "name": "Muse", "permalink": "Muse", "cover_image_url": "http://image.kazaa.comhttp://img.dovov.com69/01672812 1569/Yaron_Herman_Trio/Muse/Yaron_Herman_Trio-Muse_1.jpg", "id": […]

使用JSON.NET将JSON数据反序列化为C#

我对使用C#和JSON数据的工作比较陌生,并且正在寻求指导。 我使用的是C#3.0,.NET3.5SP1和JSON.NET 3.5r6。 我有一个定义的C#类,我需要从JSON结构填充。 但是,并不是从Web服务检索的条目的每个JSON结构都包含在C#类中定义的所有可能的属性。 我一直在做什么似乎是错误的,很难的方式,只是从JObject中逐个挑选每个值,并将string转换为所需的类属性。 JsonSerializer serializer = new JsonSerializer(); var o = (JObject)serializer.Deserialize(myjsondata); MyAccount.EmployeeID = (string)o["employeeid"][0]; 将JSON结构反序列化为C#类并处理JSON源中可能丢失的数据的最佳方法是什么? 我的课程定义为: public class MyAccount { [JsonProperty(PropertyName = "username")] public string UserID { get; set; } [JsonProperty(PropertyName = "givenname")] public string GivenName { get; set; } [JsonProperty(PropertyName = "sn")] public string Surname { get; set; } [JsonProperty(PropertyName […]

如何在JSON.NET中实现自定义的JsonConverter来反序列化基类对象列表?

我想扩展这里给出的JSON.net的例子http://james.newtonking.com/projects/json/help/CustomCreationConverter.html 我有另一个从基类/接口派生的子类 public class Person { public string FirstName { get; set; } public string LastName { get; set; } } public class Employee : Person { public string Department { get; set; } public string JobTitle { get; set; } } public class Artist : Person { public string Skill { get; set; } […]