Tag: json

使用每种类型的不同格式在同一类中序列化多个DateTime属性

我有一个具有两个DateTime属性的类。 我需要使用不同的格式序列化每个属性。 我该怎么做? 我试过了: JsonConvert.SerializeObject(obj, Formatting.None, new IsoDateTimeConverter {DateTimeFormat = “MM.dd.yyyy”}); 此解决方案对我不起作用,因为它将日期格式应用于所有属性。 有没有办法用不同的格式序列化每个DateTime属性? 也许有一些属性?

System.ObjectDisposedException:ObjectContext实例已被释放,不能再用于需要连接的操作

我使用EF 4来检索员工列表。 public ContentResult AutoCompleteResult(string searchText) { List list = Employee.GetAllCurrentEmployees(); List filteredEmployees = list .Where(x => x.GetName().ToLower().Contains(searchText.ToLower())) .ToList(); JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); var jsonString = jsonSerializer.Serialize(filteredEmployees).ToString(); return Content(jsonString); } 列表检索正常,但是当我序列化它时,我得到了这个exception; System.ObjectDisposedException: The ObjectContext instance has been disposed and can no longer be used for operations that require a connection. Generated: Wed, 17 Nov […]

如何使用Json.Net使用自定义键序列化/反序列化字典?

我有以下类,我用作字典中的键: public class MyClass { private readonly string _property; public MyClass(string property) { _property = property; } public string Property { get { return _property; } } public override bool Equals(object obj) { MyClass other = obj as MyClass; if (other == null) return false; return _property == other._property; } public override int GetHashCode() { […]

将JSON的一部分替换为其他部分(使用字符串标记)

我有一个我无法解决的问题,我在不同的地方寻求和寻求,但我仍然没有找到它。 看到这段代码: //I have 2 json to merge var json = @”{‘client’: {‘name’: ‘Should NO CHANGE’, ‘lastname’: ”, ’email’: ‘asd@asd.com’, ‘phone’: ”, ‘birthday’: ”, ‘married’: false, ‘spouse’: {‘name’: ”, ‘lastname’: ”} } }”; var json2 = @” {‘client’: {‘name’: ‘aaaa’, ‘lastname’: ‘bbbb’, ’email’: ‘cccccc@ccccc.com’, ‘phone’: ”, ‘birthday’: ”, ‘married’: false, ‘spouse’: {‘name’: ‘dddddd’, ‘lastname’: ‘eeeee’} […]

将JSON字符串反序列化为Dictionary

我有这个字符串: [{ “processLevel” : “1” , “segments” : [{ “min” : “0”, “max” : “600” }] }] 我正在反序列化对象: object json = jsonSerializer.DeserializeObject(jsonString); 该对象看起来像: object[0] = Key: “processLevel”, Value: “1” object[1] = Key: “segments”, Value: … 并尝试创建一个字典: Dictionary dic = json as Dictionary; 但是dic null 。 可能是什么问题?

如何将Json数组转换为c#中的对象列表

我有Json字符串,如下所示 { “JsonValues”:{ “id”: “MyID”, “values”: { “value1”:{ “id”: “100”, “diaplayName”: “MyValue1” }, “value2”:{ “id”: “200”, “diaplayName”: “MyValue2” } } } } 我想将Json字符串转换为以下类 class ValueSet { [JsonProperty(“id”)] public string id { get; set; } [JsonProperty(“values”)] public List values { get; set; } } class Value { public string id { get; set; } public string […]

如果我事先不知道密钥,如何解析C#中的JSON对象?

我有一些看起来像这样的JSON数据: { “910719”: { “id”: 910719, “type”: “asdf”, “ref_id”: 7568 }, “910721”: { “id”: 910721, “type”: “asdf”, “ref_id”: 7568 }, “910723”: { “id”: 910723, “type”: “asdf”, “ref_id”: 7568 } } 我如何使用JSON.net解析这个? 我可以先这样做: JObject jFoo = JObject.Parse(data); 我需要能够遍历此列表中的每个对象。 我希望能够做到这样的事情: foreach (string ref_id in (string)jFoo[“ref_id”]) {…} 要么 foreach (JToken t in jFoo.Descendants()) { Console.WriteLine((string)t[“ref_id”]); } 但当然这不起作用。 如果您在编写代码时知道密钥,那么所有示例都很有用。 […]

DataContractJsonSerializer的反序列化问题

我有以下JSON: [{ “name”: “numToRetrieve”, “value”: “3”, “label”: “Number of items to retrieve:”, “items”: { “1”: “1”, “3”: “3”, “5”: “5” }, “rules”: { “range”: “1-2” } }, { “name”: “showFoo”, “value”: “on”, “label”: “Show foo?” }, { “name”: “title”, “value”: “Foo”, “label”: “Foo:” }] 所有在一个行版本(适用于字符串文字): [{\”name\”:\”numToRetrieve\”,\”value\”:\”3\”,\”label\”:\”Number of items to retrieve:\”,\”items\”:{\”1\”:\”1\”,\”3\”:\”3\”,\”5\”:\”5\”},\”rules\”:{\”range\”:\”1-2\”}},{\”name\”:\”showFoo\”,\”value\”:\”on\”,\”label\”:\”Show foo?\”},{\”name\”:\”title\”,\”value\”:\”Foo\”,\”label\”:\”Foo:\”}] 在上面的示例中, name , value和label是必需的,但items和rules是可选的。 […]

使用JSON.Net序列化包含撇号的字符串

我使用JSON.Net作为c#中的大型MVC 3 Web应用程序和Razor视图引擎的序列化程序。 对于一个视图中的初始页面加载,使用@Html.Raw(JsonConvert.SerializeObject(myObject))在脚本标记内转储了大量JSON。 问题是某些对象的某些值包含撇号(想想像O’Brien这样的名字),JSON.Net没有以任何方式转义或编码。 对预存储在数据库中的值进行预编码不是一种选择,因为这会使各种其他进程复杂化。 有没有办法强制JSON.Net对HTML序列化对象的值进行编码,就像调用JavaScriptSerializer.Serialize(myObject)时内置的JavaScriptSerializer一样? 或者,有没有办法在视图中处理这个问题?

DataContractJsonSerializer – 在List 中反序列化DateTime

我无法使用System.Runtime.Serialization.Json.DataContractJsonSerializer类来反序列化List包含的DateTime实例。 我似乎无法将DateTime反序列化为原始类型。 DataContractJsonSerializer始终将其反序列化为格式为”/Date(1329159196126-0500)/”的字符串类型。 如果我通过使用强类型List运行它,它将序列化和反序列化,但是我正在寻找方法让串行器在简单列表或object数组中遇到时识别并正确反序列化DateTimes。 请注意,DateTimes是此列表将包含的基元和字符串之外的唯一类型。 这是我用来测试它的代码片段。 var list = new List { 27, “foo bar”, 12.34m, true, DateTime.Now }; var serializer = new DataContractJsonSerializer(typeof (List)); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, list); ms.Position = 0; var deserializedList = serializer.ReadObject(ms) as List; }