Tag: json

将Dictionary 传递给MVC Controller

我试图使用AJAX将javascript对象(键值对)传递给MVC Controller操作。 控制器操作具有接收对象的Dictionary参数。 [HttpPost] public ActionResult SearchProject(IDictionary filter … 当有问题的对象为空 (意味着它在javascript中的值为{})时,我在调试器中看到以下内容。 为什么控制器和操作名称会自动添加到Dictionary参数中? 使用fiddler我能够看到传递给我的控制器的内容,我没有看到传递这两个值。 如果javascript对象不为空,那么一切正常 我很难过..

将C#对象转为json字符串,如何处理双引号

我正在使用Newtonsoft.Json将对象解析为json字符串。 它会像这样返回一些思考: {\”code\”:-1,\”idName\”:\”empty\”,\”idValue\”:0,\”message\”:\”Failed,can not read object from body\”} 它不是一个有效的json字符串我认为,任何人都可以帮我工作? 我想要的是这样的: {“code”:-1,”idName”:”empty\”,\”idValue\”:0,\”message\”:\”Failed,can not read object from body\”} public static class CommonUtility { // format response string public static string FormatResponseString(int code, string idName, long idValue, string message) { ResponseString rs = new ResponseString(); rs.code = code; rs.idName = idName; rs.idValue = idValue; rs.message = message; string […]

更改序列化的属性名称

我的类有一个属性’PropertyA’,我希望它在序列化时在JSON对象中显示为’PropertyB’。 我可以使用任何类型的属性吗?

如何在j#dot中将json字符串反序列化为对象列表

我正在使用以下JSON字符串 { “transactions”: [ { “paymentcharge”:”0.0″, “amount”:352, “id”:13418, “shippingcharge”:35, “shippingtype”:2, “status”:2, “paymenttype”:1, “date”:”2012-10-06 16:15:28.0″ }, { “paymentcharge”:”0.0″, “amount”:42455, “id”:16305, “shippingcharge”:0, “shippingtype”:2, “status”:2, “paymenttype”:2, “date”:”2012-11-30 09:29:29.0″ }, { “paymentcharge”:”1.0″, “amount”:42456, “id”:16305, “shippingcharge”:0, “shippingtype”:2, “status”:2, “paymenttype”:2, “date”:”2012-11-30 09:29:29.0″ } ], “count”:3 } 我有一个类结构如下解析和感受json数据 class clsSalesTran { public double paymentcharge { get; set; } public double amount { […]

使用Newtonsoft JSON.NET反序列化Dynamic Json字符串

我有一个JSON字符串,我从Facebook API获得,其中我有一个名称根据其内容而变化的节点,例如有些时间它是45,或58等。它可以是任何数字。 我想要它的价值。 怎么弄呢? 例: { “data”: [ { “id”: “1492292372_10201810786059989”, “created_time”: “2014-04-05T09:00:54+0000” }, { “id”: “1492292372_10201804679827337”, “created_time”: “2014-04-04T07:29:07+0000” }, { “id”: “1492292372_10201804649306574”, “created_time”: “2014-04-04T07:10:33+0000” }, { “id”: “1492292372_10201801316823264”, “created_time”: “2014-04-03T18:31:50+0000” }, { “id”: “1492292372_10201798962284402”, “created_time”: “2014-04-03T06:24:47+0000” }, { “message_tags”: { “0”: [ { “id”: “1492292372”, “name”: “Yawar Sohail”, “type”: “user”, “offset”: 0, “length”: 12 […]

C# – 将json格式的数据解析为嵌套的哈希表

我正在尝试使用C#中的一些json格式化数据,但是,我在确定解决问题的正确方法时遇到了一些问题。 我的问题是json格式的数据将采用未知格式(我知道这听起来很奇怪……请继续阅读)。 基本上,json格式的数据将是一些名称/值对的集合,其中值可能是也可能不是嵌套名称/值对的数组。 为了使事情变得更有趣,名称/值对数组的嵌套可以无限制地继续。 例如:我可能有一些看起来像……的数据 { “1”: { “1.1”: { “1.1.1”: “value1”, “1.1.2”: “value2”, “1.1.3”: “value3” }, “1.2”: “value4”, “1.3”: { “1.3.1”: { “1.3.1.1”: “value5”, “1.3.1.2”: “value6” }, “1.3.1.2”: “value7”, “1.3.1.3”: “value8” } } } 不幸的是,我不知道将要发生多少嵌套,从技术上讲,我不知道在任何给定的消息中将出现什么名称/值对。 C#中是否有任何支持的机制可以让我轻松地将其解析为嵌套的hastables集合? 我想做一些事情(注意这段代码不是100%语法正确,最好通过递归来完成……但是它的想法是完整的)。 Hashtable ht = [deserialize data method](jsonformattedstring); foreach (Hashtable nested in ht) { If (nested.count > 1) { […]

如何仅对某些属性应用缩进序列化?

我希望以人类可读的方式将.NET对象序列化为JSON,但我希望能够更好地控制对象的属性或数组的元素是否最终在自己的行上。 目前我正在使用JSON.NET的JsonConvert.SerializeObject(object, Formatting, JsonSerializerSettings)方法进行序列化,但似乎我只能应用Formatting.Indented (单个行上的所有元素)或Formatting.None (一行上的所有内容)没有任何空格)整个对象的全局格式规则。 有没有办法在默认情况下全局使用缩进,但是为某些类或属性关闭它,例如使用属性或其他参数? 为了帮助您理解该问题,以下是一些输出示例。 使用Formatting.None : {“array”:[“element 1″,”element 2″,”element 3″],”object”:{“property1″:”value1″,”property2″:”value2”}} 使用Formatting.Indented : { “array”: [ “element 1”, “element 2”, “element 3” ], “object”: { “property1”: “value1”, “property2″:”value2” } } 我想看到的: { “array”: [“element 1″,”element 2″,”element 3”], “object”: {“property1″:”value1″,”property2″:”value2”} } (我意识到我的问题可能与这个问题有点相关,但那里的评论完全忽略了这一点,并没有真正提供有效答案。)

如何删除json字符串中的反斜杠和双引号

我试图将字符串传递给json对象,它的工作原理。 但是在json中有一些反斜杠和双引号! 我该如何删除它们? 我正在使用c# Web API 。 这是我的代码。 public string jsonvalues() { var x = new { status = “Success” }; var javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); var jsonString = javaScriptSerializer.Serialize(x); return jsonString; } 当我在控制器中返回此函数时,我得到这样的结果 “{\” 状态\ “:\” 成功\ “}”

比较两个相同结构的任意JToken-s

提前致谢。 我感谢任何帮助。 我想比较两个相同类型和结构的任意JTokens(来自NewtonSoft的Json.Net)。 static int CompareTokens(JToken x, JToken y); // possible output: 0 / 1 / -1 主要目标是能够使用此方法对两个Json字符串进行排序,这样即使在开始时它们具有相同的数据,但是顺序不同,最后这两个字符串完全相同。 所以排序标准并不重要,重要的是这个标准总是相同的。 并且应该考虑每个小数据元素。 JToken可以是以下几种类型之一: Array, Boolean, Date, Float, Guid, Integer, Null, Object, Property, String, TimeSpan, Uri 。 我没有考虑比较Bytes, Comment, Constructor, None, Undefined, Raw 。 获得一些关于比较JArrays和JObjects的想法会很棒 。 这应该是一些递归比较,因为JArrays可能包含其他JArrays和JObject ,反之亦然。 任何想法将不胜感激。 但是,了解比较更简单的类型也会非常有帮助。 我想知道如何从JToken转换为实际类型(而不是知道如何在逻辑上进行)。 JValue已实现IComparable ,但我没有弄清楚如何将简单类型的JToken转换为JValue 。 了解这一点也会有所帮助。 这是一个很常见的问题。 如果我弄清楚如何做到这一点,我会在上面放一个+100。 抱歉我的英语。

c#JSON序列化使用值而不是属性名称

我正在开发一个JSON驱动的项目,我想为SessionManager对象提供一个动态的权限列表。 虽然我可以使用一组键值对进行权限,但我想知道是否可以删除属性名称,以便键是Permission值, 值是IsAllowed值。 public class SessionPermission { public string Permission { get; set; } public bool IsAllowed { get; set; } } public class SessionManager { public string UserName { get; set; } public string Password { get; set; } public List Permissions { get; set; } public void SetPermissions() { Permissions = new List […]