Tag: json

使用C#将csv文件转换为json

我想知道是否有人编写了一个实用程序,使用C#将CSV文件转换为Json。 从上一个关于stackoverflow的问题,我知道这个很好的实用程序 – https://github.com/cparker15/csv-to-json ,目前我打算引用它,但现有的C#实现将非常有帮助! 谢谢!

处理Newtonsoft.Json中的十进制值

我有一个MVC应用程序,我在其中处理一些JSON。 这很简单。 我在ModelBinder中有这么简单的代码: return JsonConvert.DeserializeObject(jsonString, bindingContext.ModelType, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Formatting = Formatting.None, DateFormatHandling = DateFormatHandling.IsoDateFormat, FloatParseHandling = FloatParseHandling.Decimal }); 它完美无瑕。 好吧,有点。 假设我有这个课程: public class MyClass { public decimal MyProp { get; set; } } 如果我尝试反序列化这个json: “{\”MyProp\”: 9888.77}” 当然它可以工作,因为9888.77是一个Javascript浮点值。 我认为。 但是我的页面中有一个屏蔽输入,使得JSON看起来像这样(对不起我的英文): “{\”MyProp\”: \”9.888,77\” }” AAAND,它失败了。 它说它Could not convert string to […]

使用JSON.NET从JSON获取价值

我尝试使用http://www.codeplex.com/Json从json对象中提取值。 我使用imdbapi.com,他们像这样返回json: {“Title”: “Star Wars”, “Year”: “1977”, “Rated”, “PG”, “Released”, “25 May 1977”, “Genre”, “Action, Adventure, Fantasy, Sci-Fi “” Director “:” George Lucas “,” Writer “,” George Lucas “,” Actors “:” Mark Hamill, Harrison Ford, Carrie Fisher, Alec Guinness, “” Plot “:” Luke Skywalker leaves his home planet, teams up With Other Rebels, and Tries […]

如何使JSON.NET忽略对象关系?

我正在开发一个Entity Framework项目。 我想序列化一堆实体类实例。 我将它们绑定到一个容器类中: public class Pseudocontext { public List widgets; public List things; Etcetera ……这是我正在尝试序列化的这个类的一个实例。 我希望JSON.NET序列化每个实体类实例的成员,这些实体实际上是底层数据库中的列。 我不希望它甚至尝试序列化对象引用。 特别是,我的实体类有虚拟成员,允许我编写C#代码,导航我所有的实体间关系,而不用担心实际的键值,连接等,我希望JSON.NET忽略我的实体的相关部分类。 从表面上看,似乎有一个JSON.NET配置选项完全正如我所说: JsonSerializer serializer = new JsonSerializer(); serializer.PreserveReferencesHandling = PreserveReferencesHandling.None; 不幸的是,JSON.NET似乎忽略了上面的第二个声明。 我实际上找到了一个网页( http://json.codeplex.com/workitem/24608 ),其他人将同样的问题提请James Newton-King本人注意,他的回答(完整的)是“写一个定制合同解析员。“ 尽管我发现答案是不合适的,但我一直试图遵循其指导。 我非常希望能够编写一个“契约解析器”,它忽略除了原始类型,字符串,DateTime对象和我自己的Pseudocontext类以及它直接包含的列表之外的所有内容。 如果某人有一个至少类似的东西的例子,那可能就是我所需要的。 这就是我自己提出的: public class WhatDecadeIsItAgain : DefaultContractResolver { protected override JsonContract CreateContract(Type objectType) { JsonContract contract = base.CreateContract(objectType); if (objectType.IsPrimitive […]

访问JTOKEN,json.net中的所有项目

我有一个像这样的json块: { “ADDRESS_MAP”:{ “ADDRESS_LOCATION”:{ “type”:”separator”, “name”:”Address”, “value”:””, “FieldID”:40 }, “LOCATION”:{ “type”:”locations”, “name”:”Location”, “keyword”:{ “1”:”LOCATION1″ }, “value”:{ “1”:”United States” }, “FieldID”:41 }, “FLOOR_NUMBER”:{ “type”:”number”, “name”:”Floor Number”, “value”:”0″, “FieldID”:55 }, “self”:{ “id”:”2″, “name”:”Address Map” } } } 如何获取此令牌包含的所有关键项。 例如,从上面的代码我想要“ADRESS_LOCATION”,“LOCATION”,“FLOOR_NUMBER”和“self”。 谢谢

在Json.NET序列化中有没有办法区分“null因为不存在”和“null因为null”?

我正在使用ASP.NET webapi代码库,我们在很大程度上依赖于通过JSON.NET自动支持将消息体的JSON反序列化为.NET对象。 作为构建我们的一个资源的补丁支持的一部分,我非常希望区分JSON对象中不存在的可选属性与明确为null的相同属性。 我的意图是使用第一个“不要改变那里有什么”与“删除这个东西”。 有没有人知道是否有可能标记我的C#DTO,这样当它们被反序列化时,JSON.NET可以告诉我它是哪种情况? 现在他们只是空出来,我不知道为什么。 相反,如果有人能够提出一个更好的设计,不需要我这样做,同时仍然支持补丁动词,我很想听听你的建议。 作为一个具体的例子,考虑将传递给put的这个有效负载: { “field1”: “my field 1”, “nested”: { “nested1”: “something”, “nested2”: “else” } } 现在,如果我只想更新field1,我应该能够将其作为HTTP补丁发送: { “field1”: “new field1 value” } 并且嵌套值将保持不变。 但是,如果我发送了这个: { “nested”: null } 我想知道这意味着我应该明确删除嵌套数据。

cSON中的JSON字符串到CSV和CSV到JSON的转换

我正在使用我的asp.net web API项目中的JSON / CSV文件,并尝试使用CSVHelper和ServiceStack.Text库但无法使其工作。 包含数组的JSON文件是动态的,可能包含任意数量的字段 我使用streamreader读取文件,然后需要将其转换为CSV文件,以便最终用户下载。 示例文件文本 [{“COLUMN1″:”a”,”COLUMN2″:”b”,”COLUMN3″:”c”,”COLUMN4″:”d”,”COLUMN5″:”e”}, {“COLUMN1″:”a”,”COLUMN2″:”b”,”COLUMN3″:”c”,”COLUMN4″:”d”,”COLUMN5″:”e”}] JSON到CSV public static string jsonStringToCSV(string content) { var jsonContent = (JArray)JsonConvert.DeserializeObject(content); var csv = ServiceStack.Text.CsvSerializer.SerializeToCsv(jsonContent); return csv; } 这不会导致我的CSV数据 然后一些文件是带有逗号或制表符的分隔符类型,我想利用CSVHelper将CSV字符串动态转换为IEnumerable public static IEnumerable StringToList(string data, string delimiter, bool HasHeader) { using (var csv = new CsvReader(new StringReader(data))) { csv.Configuration.SkipEmptyRecords = true; csv.Configuration.HasHeaderRecord = HasHeader; csv.Configuration.Delimiter […]

如何使用NewtonSoft JsonConvert在其名称中用短划线(“ – ”)反序列化属性?

我们有一个JSON对象,其中一个对象的名称中包含一个破折号。 在下面。 { “veg”: [ { “id”: “3”, “name”: “Vegetables”, “count”: “25” }, { “id”: “4”, “name”: “Dal”, “count”: “2” }, { “id”: “5”, “name”: “Rice”, “count”: “8” }, { “id”: “7”, “name”: “Breads”, “count”: “6” }, { “id”: “9”, “name”: “Meals”, “count”: “3” }, { “id”: “46”, “name”: “Extras”, “count”: “10” } ], “non-veg”: […]

IEnumerable中每个项目的自定义json序列化

我正在使用Json.NET来序列化具有枚举和DateTime的IEnumerable的对象。 它是这样的: class Chart { // … public IEnumerable YAxis { get; set; } public IEnumerable Data { get; set; } public IEnumerable XAxis { get; set; } } 但我需要一个自定义的JsonConverter来使枚举序列化为字符串并更改DateTime字符串格式。 我已经尝试使用这里提到的JsonConverter属性用于枚举和自定义IsoDateTimeConverter如下所示: [JsonConverter(typeof(StringEnumConverter))] public IEnumerable Data { get; set; } [JsonConverter(typeof(MyDateTimeConverter))] public IEnumerable XAxis { get; set; } 我希望它也适用于IEnumerable ,但不出所料,它不会: 无法将类型为’WhereSelectArrayIterator`2 [System.Int32,Model.State]’的对象强制转换为’System.Enum’。 有没有办法说JsonConverterAttribute适用于每个项目而不是可枚举本身?

从C#.NET中的DataTable到JSON

我是C#和.NET的新手,但我已经使这段代码调用存储过程,然后我想获取返回的DataTable并将其转换为JSON。 SqlConnection con = new SqlConnection(“connection string here”); SqlDataAdapter da = new SqlDataAdapter(); SqlCommand cmd = new SqlCommand(“getDates”, con); SqlParameter par = new SqlParameter(“@PlaceID”, SqlDbType.Int); par.Value = 42; da.SelectCommand = cmd; cmd.Parameters.Add(par); DataSet ds = new DataSet(); DataTable dt = new DataTable(); con.Open(); try{ cmd.CommandType = CommandType.StoredProcedure; da.Fill(ds); } 我的问题是,最好/最简单的方法是什么? 一个例子会很棒,因为我还是很陌生。