Tag: json

在C#中反序列化JSON数组

我遇到了一个棘手的问题。 我有一个这种格式的JSON字符串: [{ “record”: { “Name”: “Komal”, “Age”: 24, “Location”: “Siliguri” } }, { “record”: { “Name”: “Koena”, “Age”: 27, “Location”: “Barasat” } }, { “record”: { “Name”: “Kanan”, “Age”: 35, “Location”: “Uttarpara” } } … … ] “记录”中的字段可以增加或减少。 所以,我做了这样的课程: public class Person { public string Name; public string Age; } public class PersonList { […]

Google Translate V2无法处理来自C#的大型文本翻译

我使用带有GET方法的Google Translation V2 api实现了C#代码。 它成功翻译了小文本,但是当增加文本长度并且需要1,800个字符(包括URI参数)时,我得到的“URI太大”错误。 好吧,我烧掉了所有的路径,并在互联网上发布的多个页面上调查了这个问题。 所有这些都明确表示应该重写GET方法来模拟POST方法(这意味着提供对5,000个字符URI的支持)但是没有办法找到它的代码示例。 有没有人有任何例子或可以提供一些信息? [ 编辑 ]这是我正在使用的代码: String apiUrl = “https://www.googleapis.com/language/translate/v2?key={0}&source={1}&target={2}&q={3}”; String url = String.Format(apiUrl, Constants.apiKey, sourceLanguage, targetLanguage, text); Stream outputStream = null; byte[] bytes = Encoding.ASCII.GetBytes(url); // create the http web request HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); webRequest.KeepAlive = true; webRequest.Method = “POST”; // Overrride the GET method as documented on […]

将JSON对象解析为c#

我正在尝试使用此链接中的示例http://sharpdevpt.blogspot.com/2009/10/deserialize-json-on-c.html?showComment=1265045828773#c2497312518008004159 但我的项目不会使用JavaScriptConvert.DeserializeObject进行编译,例子说这来自.net库有谁知道哪一个? 我知道下面的例子使用Newtonsoft.Json ….

在WebAPI中使用Model上的Serializable属性

我有以下场景:我正在使用WebAPI并根据模型将JSON结果返回给使用者。 我现在还需要将模型序列化为base64,以便能够将它们保存在缓存中和/或将它们用于审计目的。 问题是,当我将[Serializable]属性添加到模型以便将模型转换为Base64时,JSON输出更改如下: 该模型: [Serializable] public class ResortModel { public int ResortKey { get; set; } public string ResortName { get; set; } } 没有[Serializable]属性,JSON输出是: { “ResortKey”: 1, “ResortName”: “Resort A” } 使用[Serializable]属性,JSON输出为: { “k__BackingField”: 1, “k__BackingField”: “Resort A” } 如何在不更改JSON输出的情况下使用[Serializable]属性?

使用Json.NET使用新的部分JSON数据修改现有对象

考虑下面的示例程序 var calendar = new Calendar { Id = 42, CoffeeProvider = “Espresso2000”, Meetings = new[] { new Meeting { Location = “Room1”, From = DateTimeOffset.Parse(“2014-01-01T00:00:00Z”), To = DateTimeOffset.Parse(“2014-01-01T01:00:00Z”) }, new Meeting { Location = “Room2”, From = DateTimeOffset.Parse(“2014-01-01T02:00:00Z”), To = DateTimeOffset.Parse(“2014-01-01T03:00:00Z”) }, } }; var patch = @”{ ‘coffeeprovider’: null, ‘meetings’: [ { ‘location’: […]

如何使用包含“原始”JSON的字符串成员序列化和反序列化类型,而无需在进程中转义JSON

我想将JSON反序列化为Object但我不想反序列化嵌套的JSON,嵌套的嵌套JSON应转换为JSON列表(请检查“ 我的预期输出 ”以获得清晰的想法)… //假设我有以下JSON数据,这里我有“地址”实体的嵌套JSON String jsonEmployees = “{“Employees”: [{“EmpId”:1, “EmpName”:”ABC”, “Address”:[{“AddressId”:1, “Address”:”Something”},{“AddressId”:2, “Address”:”Anything”}]}, {“EmpId”:2, “EmpName”:”XYZ”, “Address”:[{“AddressId”:1, “Address”:”Something”},{“AddressId”:2, “Address”:”Anything”}]}] }” public class Employee { public int EmpId { get; set; } public string EmpName { get; set; } // **Note** : I’m not using List data type for Address, instead of I want list of address […]

使用DataContractJsonSerializer反序列化变量Type JSON数组

我有一个这种forms的JSON字符串: string jsonStr = “[\”A\”, [\”Martini\”, \”alovell\”],[\”Martin\”, \”lovell\”]]” 我试图使用C#.NET反序列化器DataContractJsonSerializer使用以下代码片段反序列化JSON MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof); X data = (X)serializer.ReadObject(ms); 既然JSON数组是一个变量类型的数组,我不知道X应该是什么类型的对象 如果我的字符串是 jsonStr = “[[\”Martini\”, \”alovell\”],[\”Martin\”, \”lovell\”]]” 我可以用这个: X = List<List> 这对我有用。 我想知道是否有任何方法可以反序列化变量类型的JSON数组?

JSON.NET在忽略null属性的同时序列化JObject

我有一个JObject ,用作调用RESTful Web服务的模板 。 这个JObject是通过解析器创建的,因为它用作模板告诉用户端点模式是什么样的,我不得不想办法保留所有属性,这就是为什么我将它们的值默认为null 。 例如,这就是对象最初的样子: { “Foo”:{ “P1”:null, “P2”:null, “P3”:null, “P4”:{ “P1”:null, “P2”:null, “P3”:null, }, “FooArray”:[ { “F1”:null, “F2”:null, “F3”:null, } ] }, “Bar”:null } 然后,用户可以根据需要填写单个字段,例如Foo.P2和Foo.P4.P1 : { “Foo”:{ “P1”:null, “P2″:”hello world”, “P3”:null, “P4”:{ “P1”:1, “P2”:null, “P3”:null, }, “FooArray”:[ { “F1”:null, “F2”:null, “F3”:null, } ] }, “Bar”:null } 意思是他们只关心这两个领域。 现在我想将此模板( JObject )序列化为JSON字符串,但只想要填充的那些字段显示出来。 所以我尝试了这个: […]

Newtonsoft JSON动态属性名称

有没有办法在序列化期间更改Data属性的名称,所以我可以在WEB Api中重用这个类。 例如,如果我返回分页用户列表,则应将数据属性序列化为“用户”,如果我返回项目列表,则应将其称为“项目”等。 这样的事情是可能的: public class PagedData { [JsonProperty(PropertyName = “Set from constructor”)]?? public IEnumerable Data { get; private set; } public int Count { get; private set; } public int CurrentPage { get; private set; } public int Offset { get; private set; } public int RowsPerPage { get; private set; } public int? […]

如何在Json.NET中将巨大的JSON文件解析为流?

我有一个非常非常大的JSON文件(1000+ MB)相同的JSON对象。 例如: [ { “id”: 1, “value”: “hello”, “another_value”: “world”, “value_obj”: { “name”: “obj1” }, “value_list”: [ 1, 2, 3 ] }, { “id”: 2, “value”: “foo”, “another_value”: “bar”, “value_obj”: { “name”: “obj2” }, “value_list”: [ 4, 5, 6 ] }, { “id”: 3, “value”: “a”, “another_value”: “b”, “value_obj”: { “name”: “obj3” }, “value_list”: […]