Tag: json

使用本文和Json.Net从文件中存储和检索大型Json(100 mb +)的有效方法

我一直试图找出使用JSon.net从包含Json的文件存储和检索数据的最佳方法。 在我的研究期间,我找到了几种方法。 http://www.drdobbs.com/windows/parsing-big-records-with-jsonnet/240165316 http://www.ngdata.com/parsing-a-large-json-file-efficiently-and-easily/ Jackson Api(仅适用于Java) 任何这种方法都可以与Json.Net一起使用吗? DrDoobs的文章是否有可用的实际实现? 我无法弄清楚HandleToken(reader.TokenType,reader.Value)方法。 目前的统计数据: 大约5分钟写出大小约为60Mb的Json 大约3分钟阅读Json。 现行代码: public static T DeserializeJsonFromStream(Stream s) { using (StreamReader reader = new StreamReader(s)) { using (JsonTextReader jsonReader = new JsonTextReader(reader)) { JsonSerializer ser = new JsonSerializer(); ser.Formatting = Newtonsoft.Json.Formatting.None; ser.PreserveReferencesHandling = PreserveReferencesHandling.Objects; ser.TypeNameHandling = TypeNameHandling.All; ser.NullValueHandling = NullValueHandling.Ignore; ser.Error += ReportJsonErrors; ser.DateFormatHandling = […]

在javascript中使用c#class对象

我想在javascript使用在c#类中创建的对象。 我知道我可以使用json库将我的服务器端对象转换为JSON对象,以便它可以在javascript使用。 我已经为此下载了Newtonsoft.Json库。 我有以下aspx.cs页面代码 using Newtonsoft.Json; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { product p = new product(); p.ProductId = 1; p.productName = “t-shirt”; } public class product { public int ProductId { get; set; } public string productName { get; set; } } } 对于aspx页面我正在使用以下代码来访问该p对象值。 var jsobject […]

仅当数组为空时,JSON反序列化才会失败

在某些情况下,当我收到其中一个数组属性为空的JSON时,反序列化失败,抛出以下exception: 无法将当前JSON对象(例如{“name”:“value”})反序列化为类型’SonicApi.ClickMark []’,因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。 要修复此错误,请将JSON更改为JSON数组(例如[1,2,3])或更改反序列化类型,使其成为普通的.NET类型(例如,不是像整数这样的基本类型,而不是类似的集合类型可以从JSON对象反序列化的数组或List。 JsonObjectAttribute也可以添加到类型中以强制它从JSON对象反序列化。 路径auftakt_result.click_marks,第1行,第121位。 尝试使用以下代码忽略空值没有帮助: var jsonSerializerSettings = new JsonSerializerSettings(); jsonSerializerSettings.NullValueHandling = NullValueHandling.Ignore; 以下是产生错误的JSON示例: { “status”: { “code”: 200 }, “auftakt_result”: { “clicks_per_bar”: 0, “overall_tempo”: 0, “overall_tempo_straight”: 0, “click_marks”: {} } } 以下是JSON的示例,其数组不为空且不会产生任何错误: { “status”: { “code”: 200 }, “auftakt_result”: { “clicks_per_bar”: 8, “overall_tempo”: 144.886978, “overall_tempo_straight”: 144.90889, “click_marks”: [ { “index”: 0, “bpm”: […]

如何使用C#中的Json.NET从JSON访问嵌套对象

如何使用类装饰在嵌套对象中选择json值“estimatedLocationDate” ? 属性“estimatedLocationDate”始终返回null而不是值2015-10-01T14:00:00.000 。 其他修饰值返回正确的值。 这是我的C#类 public string id { get; set; } public string name { get; set; } [JsonProperty(“publishedDate”)] public string publishdate { get; set; } [JsonProperty(“estimatedLocationDate”)] public string estimatedLocationDate{ get; set; } [JsonProperty(“createdTime”)] public string createtime { get; set; } [JsonProperty(“lastUpdatedTime”)] public string lastupdate { get; set; } 这是JSON “planet”: [ { […]

如何使用变量名反序列化可变大小的JSON字符串

使用固定字段名称反序列化固定大小的固定结构,JSON字符串很简单:只需定义一个包含所有字段的类(具有正确的类型和名称,在编译时都是已知的)。 反序列化可变大小的重复嵌套对更具挑战性,但可以在类内部的List 的帮助下完成。 但是,如果在编译时字段的名称未知,我该怎么办? 例如: { “container”:{ “GD01AB491103”:{ “field_id1”:11, “field_id2”:12, “field_id3”:13, “field_id4″:”fourteen” }, “DC01AB491103”:{ “field_id1”:21, “field_id2”:22, “field_id3”:23, “field_id4″:”twenty four” }, “GH01AB451101”:{ “field_id1”:31, “field_id2”:32, “field_id3”:33, “field_id4″:”thirty four” } . . . }, “terminator” } 如何反序列化这样的字符串? (最好使用.NET的JavaScriptSerializer,但如果它太弱/无能力,我可能需要诉诸其他东西) 编辑 :澄清挑战的性质:在上面的例子中,为了定义一个类: public class ?????? { public int field_id1 {get;set;} public int field_id2 {get;set;} public int field_id3 {get;set;} public string […]

Newtonsoft.Json,Path返回了多个令牌

对于此代码: JObject o = JObject.Parse(jsStr); var sel = o.SelectToken(“.items[*].owner”); 其中jsStr是https://api.github.com/search/repositories?q=Newtonsoft.Json&sort=stars&order=desc的内容 我会得到错误的 Path returned multiple tokens. 如何使其工作?

C#JSON解析。 解析了逃脱的JSON

Facebook有一个新的批量请求图谱API,我正在尝试使用它。 JSON看起来像这样: [ { “code”: 200, “headers”: [ { “name”: “Cache-Control”, “value”: “private, no-cache, no-store, must-revalidate” }, { “name”: “Connection”, “value”: “close” }, { “name”: “Content-Type”, “value”: “text/javascript; charset=UTF-8” }, { “name”: “ETag”, “value”: “\”abcd1234abcd1234abcd1234abcd1234\”” }, { “name”: “Expires”, “value”: “Sat, 01 Jan 2000 00:00:00 GMT” }, { “name”: “P3P”, “value”: “CP=\”Facebook does not have […]

如何将JSON属性转换为XML作为xml元素的属性

使用Newtonsoft的.Net库将JSON转换为XML,有没有办法将特定的JSON元素转换为XML属性? 例如,采用以下JSON: { “array”: { “item”: [ 1, 2, 3 ], “length”: 3 } } 并将其转换为: 1 2 3 谢谢。

KnockoutJS并将单个对象绑定到viewmodel

我一直在这周围,并没有看到出现问题的地方。 也许你可以帮忙。 有多种视图模型设置: var viewModels = { emailTemplateViewModel: { subject: new ko.observable(‘dd’), emailName: new ko.observable(‘dd’), emailAddress: new ko.observable(‘dd’), body: new ko.observable(‘dd’) }, deviceSettingsViewModel: { managerName: new ko.observable(”) } } ko.applyBindings(viewModels); 我正在尝试使用从服务器返回的JSON填充其中一个视图模型(这是正确的并且格式正确)。 function LoadEmailTemplate() { $.getJSON(‘/EmailTemplate/Template’, function (data) { viewModels.emailTemplateViewModel = ko.mapping.fromJS(data); ko.applyBindings(viewModels.emailTemplateViewModel); }) } 但是,当我运行它时,我收到以下错误:“未捕获错误:您不能多次将绑定应用于同一元素。” 但是我读到的所有文档都显示了映射后发生的绑定。 如果我从LoadEmailTemplate函数中取出绑定,则运行时没有错误,但页面显示默认值’dd’,而不是那些应该从JSON响应映射的值。 该函数触发如下: Email Template 我正在尝试使用with-binding,因为电子邮件模板仅相对于页面的某个区域,例如 和属性: 我知道这是有效的,因为表单加载了首次定义viewmodel时设置的值。 看起来好像只是映射是失误的。 任何建议都会非常感激。 […]

如何使用Razor MVC-4将JSON数据加载到SlickGrid中

我是jquery,光滑网格和razor的新手。 我已经浏览了SlickGrid示例,并且能够将静态数据加载到SlickGrid中。 现在我正在尝试将MSSQL中的JSON数据加载到我的SlickGrid中。 我在网上看到了一些例子,但我相信我错过了那些例子中没有提到的东西。 这是我的代码。 SlickGridProducts.js var grid; var columns = [ { id: “ProductID”, name: “ProductID”, field: “ProductID”, width: 50 }, { id: “ItemDesc”, name: “ItemDesc”, field: “ItemDesc”, width: 200 }, { id: “DivName”, name: “DivName”, field: “DivName”, width: 50 }, { id: “DeptDesc”, name: “DeptDesc”, field: “DeptDesc”, width: 75 }, { id: “ClassDesc”, […]