Articles of json

如何正确使用javascript反序列化将json字符串转换为复杂对象?

我有我的.ashx处理程序中可用的以下json对象(var items =): {“Coverages”:{“PersonID”:10,”DetCode”:””,”Reimbursement”:””,”Deductible”:””,”MaximumPerAnnum”:””,”MaximumPerVisit”:””,”MaximumPerVisits”:””,”SvcCode”:””},”CoverageCombinedMaximums”:{“PersonID”:10,”DetCode”:[“AAAAA”,”BBBBB”,”CCCCC”],”MaximumPerAnnum”:””}} public void ProcessRequest (HttpContext context) { bool isSuccessful = true; var items = context.Request.Params[“items”]; if (isSuccessful) { JavaScriptSerializer ser = new JavaScriptSerializer(); AdditionalCoveragesPackage package = ser.Deserialize(items); } else { SendErrorMessage(context); return; } } 这是我试图反序列化的类的结构: public class AdditionalCoverage { public int PersonID { get; set; } public string DetCode { get; set; […]

如何将文件路径数组转换为分层JSON结构

我正在尝试在给定其所有文件和路径的数组的情况下创建机器目录结构的JSON。 该数组看起来像这样: string[] dirArray = { “./proc/15/task/15/exe”, “./proc/15/task/15/mounts/mounts.xml”, “./proc/15/task/15/mountinfo/mountinfo.xml”, “./proc/15/task/15/clear_refs/clear_ref.xml”, “./proc/14/loginuid/loginuid.xml”, “./proc/14/sessionid/sessionid.xml”, “./proc/14/coredump_filter/coredump_filter.xml”, “./proc/14/io/io.xml” } 我瞄准的目标JSON是这样的: { “.”: { “file”: { “name”:”fileInRoot.xml” }, “proc”: { “file”: { “name”:”fileInProc.xml” }, “15”: { “file”: { “name”:”fileIn15.xml” }, “task”: { “file”: { “name”:”fileInTask.xml” }, “15”: { “file”: { “name”:”fileInTask.xml” }, “mounts”: { “file”: { “name”:”fileInMounts.xml” } }, “mountsInfo”: […]

有没有办法使用HttpPostedFile类获得上传进度?

我想使用HttpPostedFile类从网页上传一个或多个大文件到ASP.NET MVC控制器。 使用此类,上载的大于256 KB的文件将缓冲到磁盘,而不是保存在服务器内存中。 我的理解是它可以这样做: if (context.Request.Files.Count > 0) { string tempFile = context.Request.PhysicalApplicationPath; for(int i = 0; i 0) { uploadFile.SaveAs(string.Format(“{0}{1}{2}”, tempFile,”Upload\\”, uploadFile.FileName)); } } } 有没有办法设置回调或使用其他方法,通过AJAX或JSON定期返回状态到网页,以便显示进度条和完成百分比? 代码会是什么样的?

JSON.NET反序列化属性名称转换为具有自定义ContractResolver的ExpandoObject

我有这个JSON: {“firstName”: “John”,”lastName”: “Doe”} 这个JSON.NET合同解析器: public class CustomContractResolver : DefaultContractResolver{ protected override string ResolvePropertyName(string propertyName) { return propertyName.Replace(“_”,””); } } 我有这个WebApi Controller方法,使用expando来使用提供的字段部分更新db行: public virtual int Post(int id, JObject content) { var obj = JsonConvert.DeserializeObject(content.ToString(), new JsonSerializerSettings { ContractResolver = new CustomContractResolver() }); db.Update(id, obj) } 我希望反序列化的expando具有属性first_name和last_name以匹配我的模型/ db列名,但是它的属性仍然匹配JSON。 直接反序列化为Person有first_name和last_name有效,正如LB帮助我在下面发现的那样,但是我的db层需要一个Expando来进行部分记录更新,否则它会吹掉没有被json指定的Person任何属性,因此返回null在模型中。 我可以在ContractResolver中做什么来转换Expando的属性?

SQL Server 2008 R2的C#CLR中的newtonsoft.json解析器 – 如何部署?

我创建了一个使用newtonsoft json parser.的CLR newtonsoft json parser. 我需要部署CLR 。 我为解析器依赖创建了一个程序集: CREATE ASSEMBLY [Newtonsoft.Json] FROM ‘C:\share\Release\Newtonsoft.Json.dll’ WITH PERMISSION_SET = UNSAFE 上面的语句抛出一个错误: `Assembly ‘Newtonsoft.Json’ references assembly ‘system.runtime.serialization, version=3.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089.’, which is not present in the current database. SQL Server attempted to locate and automatically load the referenced assembly from the same location where referring assembly came from, […]

如何解析Newtonsoft JSON中的TimeSpan值

我想解析JSON字符串并使用token.Type属性来检测JTokenType.TimeSpan类型的JTokenType.TimeSpan 。 我无法弄清楚如何在输入字符串中表达TimeSpan,一切似乎都被解释为JTokenType.String。 var timeSpanString = TimeSpan.FromHours(1).ToString(); testString = string.Format(@”{{“”Value””: “”{0}”” }}”, timeSpanString); var statObject = JObject.Parse(testString); JToken token = statObject[“Value”]; var tokenValue = token.ToString(); var tokenType = token.Type; // JTokenType.String 我甚至尝试过: JValue jValue = new JValue(“test”); jValue.Value = TimeSpan.FromHours(1); bool isTimeSpan = jValue.Type == JTokenType.TimeSpan; // true! testString = string.Format(@”{{“”Value””: “”{0}”” }}”, jValue.Value); var […]

C#:从JSON结构中提取/检索子节点

我们如何从C#中的JSON结构中提取或检索子节点值。 我的应用程序正在使用OpenWeatherMap ,我需要从city检索名称 , temp从列表和天气节点的描述 ,我的JSON和Class结构如下 { “cod”: “200”, “message”: 0.0284, “city”: { “id”: 2643743, “name”: “London”, “coord”: { “lon”: -0.12574, “lat”: 51.50853 }, “country”: “GB”, “population”: 0, “sys”: { “population”: 0 } }, “cnt”: 1, “list”: [ { “dt”: 1429268400, “temp”: { “day”: 12.21, “min”: 4.86, “max”: 13.18, “night”: 4.86, “eve”: 11.76, “morn”: 12.21 […]

如何使用json.net设置json路径的值

我试图在JSON结构中设置一个任意路径,我很难搞清楚如何做一个简单的设定值… 我想要的是像SetValue(path,value)这样的方法,它像SelectToken一样运行,但如果它不存在则创建路径并设置值。 public void SetPreference(string username, string path, string value) { var prefs = GetPreferences(username); var jprefs = JObject.Parse(prefs ?? @”{}”); var token = jprefs.SelectToken(path); if (token != null) { // how to set the value of the path? } else // how to add the path and value, example {“global.defaults.sort”: { “true” }} } […]

如何在C#中过滤JSON数组

我花了很多时间为我的问题找到解决方案。 在这个例子中,我在SetNavRecords数组中有2条记录。 第一个是“Artikelnummer”:“21700” ,第二个是“Artikelnummer”:“21701” 每条记录都有一个数组“OfflineVerkaufspreis”。 对我来说重要的是“OfflineVerkaufspreis”中的“Location_Code”字段我只需要一个已过滤的位置代码的孔信息。 如何选择一个位置代码的数据,例如“MH”? 我正在使用C#和Newtonsoft类进行JSON解析。 我用LINQ尝试了一些版本但没有成功。 { “SetNavRecords” : [ { “Artikelbeschreibung” : “Trikot \”Home\” 2012/2013″, “Artikelbeschreibung2” : “weiß”, “Artikelnummer” : “21700”, “Artikelrabattgruppe” : “MERCH”, “Gutschein” : false, “MwStProduktgruppe” : “VOLLNEU”, “OfflineVerkaufspreis” : [ { “Allow_Line_Discount” : true, “Date” : “2014-05-16T00:00:00”, “Item_No” : “21700”, “Location_Code” : “BP”, “Unit_Price” : 5.0 }, { […]

问题在C#中反序列化JSON日期 – 增加2小时

在将JSON日期反序列化为C#DateTime时,我们遇到了这样一个令人讨厌的问题。 代码是: JavaScriptSerializer serializer = new JavaScriptSerializer(); jsonTrechos = jsonTrechos.Replace(“/Date(“, “\\/Date(“).Replace(“)/”, “)\\/”); Trecho[] model = serializer.Deserialize(jsonTrechos); jsonTrechos是一串json2.js的JSON.stringify(); 。 问题是:反序列化工作,在Trechos对象的所有日期加上2小时。 我的时区是巴西(UTC -3),我们正在夏令时(所以我们目前在UTC -2),如果它有任何关系。 我想也许本地化和时区可能会在这方面发挥作用,如果真的如此,我不知道如何解决它。