Tag: json

Json.Parse转义换行符

我有一个页面,我试图使用JSON.parse解析json字符串 ‘[{“Name”:”Eggs”,”Complete”:false,”Notes”:”Notes here\n”},{“Name”:”Sugar”,”Complete”:false,”Notes”:null}]’ 但是下面的代码给出了错误”Uncaught SyntaxError: Unexpected token” var groceriesJson = JSON.parse(jsonString); 然后我开始知道它是因为在json字符串中的\n 。 所以我尝试了这个解决方案 。 但没有运气。 仍然是同样的错误”Uncaught SyntaxError: Unexpected token” function escapeSpecialChars(jsonString) { return jsonString.replace(/\\n/g, “\\n”) .replace(/\\’/g, “\\'”) .replace(/\\”/g, ‘\\”‘) .replace(/\\&/g, “\\&”) .replace(/\\r/g, “\\r”) .replace(/\\t/g, “\\t”) .replace(/\\b/g, “\\b”) .replace(/\\f/g, “\\f”); } var groceriesJson = JSON.parse(escapeSpecialChars(jsonString)); 有任何想法吗? 谢谢 —更新—- 我不是手动创建这个字符串,我有c#代码从c#对象创建json字符串 var jss = new System.Web.Script.Serialization.JavaScriptSerializer(); var […]

Json.NET – 直接从流反序列化为动态?

在Json.NET文档中的性能提示的帮助下,我整理了一个从远程资源下载/反序列化JSON的方法: public async Task GetJsonAsync(string url) { using (var stream = await new HttpClient().GetStreamAsync(url)) { using (var sr = new StreamReader(stream)) { using (var jr = new JsonTextReader(sr)) { return new JsonSerializer().Deserialize(jr); } } } } 我想要一个返回dynamic的非generics版本。 用GetJsonAsync(url)调用上面的方法是有效的,直到你尝试访问结果的动态属性,此时我得到: ‘Newtonsoft.Json.Linq.JObject’ does not contain a definition for ‘[MyProperty]’ 我已经看到如何从字符串反序列化为动态 ,但是还没有看到直接从流中执行它的工作示例,这将是更好的,因为它更有内存效率。 这可能吗?

使用Newtonsoft将JSON数组数组反序列化为List of Tuples

我从在线服务提供商处收到的数据如下: { name: “test data”, data: [ [ “2017-05-31”, 2388.33 ], [ “2017-04-30”, 2358.84 ], [ “2017-03-31”, 2366.82 ], [ “2017-02-28”, 2329.91 ] ], } 我想将它解析成一个看起来像这样的对象: public class TestData { public string Name; public List<Tuple> Data; } 我唯一能找到的是如何将一组对象解析成一个tulples列表,例如: Json.NET反序列化其他类型中的Tuple 不起作用? 有没有办法编写一个可以处理这个问题的自定义转换器?

JObject嵌套属性

我试图用JObject创建一个这样的json对象: { “input”: { “webpage/url”: “http://google.com/” } } 我可以添加以下属性: JObject job = new JObject( new JProperty(“website/url”, “http://www.google.com”) ); 但是每次我尝试将一个对象嵌套在另一个对象中,这样我就可以让父“输入”它抛出一个exception。 如何使用JObject创建嵌套属性?

使用Json.NET使用数组数组反序列化json字符串

string json = @”{ ‘symbol’:’XX’, ‘column_names”:[“Date”,”Open”,”High”,”Low”,”Close”,”Volume”], ‘data’:[ [‘2014-01-02’,25.78,25.82,25.47,25.79,31843697.0], [‘2013-12-31’,25.81,26.04,25.77,25.96,22809682.0]]}”; public class DailyData { public string symbol { get; set; } public List data { get; set; } } public class OneDay { public DateTime date { get; set; } public double open { get; set; } public double high { get; set; } public double […]

如何使用自定义标头将任意JSON数据发送到REST服务器?

TL; DR – 如何使用auth标头将JSON字符串发送到REST主机? 我已经尝试了3种不同的方法,其中一种方法适用于匿名类型。 为什么我不能使用匿名类型? 我需要设置一个名为“Group-Name”的变量,连字符不是有效的C#标识符。 背景 我需要POST JSON但是无法获取正文和内容类型 function#1 – 使用匿名类型 内容类型和数据是正确的,但我不想使用匿名类型。 我想用一个字符串 static void PostData(string restURLBase, string RESTUrl, string AuthToken, string postBody) { HttpClient client = new HttpClient(); client.BaseAddress = new Uri(restURLBase); client.DefaultRequestHeaders.Add(“Auth-Token”, AuthToken); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); // StringContent content = new StringContent(postBody); var test1 = “data1”; var test2 = “data2”; var test3 […]

如何在C#中将json转换为扁平结构

我正在尝试用C#编写函数,将JSON转换为键/值对。 它应该支持数组。 例如,以下JSON: { title: title_value, components: [ { component_id: id1, menu: [ {title: menu_title1}, {title: menu_title_x}, {id: menu_id1} ] }, { component_id: id2, menu: [ {title: menu_title2}, {id: menu_id2} ] } ] } 应转换为: title = title_value components.0.component_id = id1 components.0.menu.0.title = menu_title1 components.0.menu.1.title = menu_title_x components.0.menu.2.id = menu_id1 components.1.component_id = id2 components.1.menu.0.title = […]

ASP.NET ScriptService与派生类型的反序列化问题

我有一个ScriptService Web方法(.NET 3.5),它接受一个抽象基类型的单个参数: [WebMethod(EnableSession=true)] [ScriptMethod()] public bool Test(Item item) { … } 和: namespace Namespace { public abstract class Item { public int id; } public class Group : Item { public Item[] items; } public class Instance : Item { public string whatever; } } 通常,在调用方法时, item将是包含Instance和/或Group对象的Group 。 我从jQuery调用这个服务; 我没有使用Microsoft客户端框架。 调用其他方法工作正常。 问题:当我进行调用时,在我的方法被调用之前会抛出exception。 例如,如果我的电话是: POST […]

使用JArray从JSON获取值

我有以下字符串(json格式) 我从我的服务器上得到了: {[{“ruta”: “1”,”division”: “7”},{“ruta”: “2”,”division”: “7”},{“ruta”: “3”,”division”:”7″},{“ruta”: “4”,”division”: “7”},{“ruta”: “5”,”division”: “7”},{“ruta”: “23”,”division”: “7”}]} 我想获取每个值并将它们保存在字符串变量中,以便将它们保存在数据库中。 为此,我试图做如下: JArray jarr = JArray.Parse(result); foreach (JObject content in jarr.Children()) { foreach (JProperty prop in content.Properties()) { string tempValue = prop.Value.ToString; // This is not allowed //here more code in order to save in a database } } 但我找不到将值转换为字符串的方法。

使用json.NET将JSON反序列化为C#dynamic

我有以下问题:我有一个看起来像这样的json文件 { “Path”: { “FirstPath”: “/1/2/text()” } } 如果我像这样用Newtonsoft解析这个JSON-File dynamic dyn = JObject.Parse(json); 或这个 dynamic dyn = JsonConvert.DeserializeObject(json); 我得到一个需要像这样使用的动态对象 dyn.Path.FirstPath.Value 我如何摆脱价值的东西? JSON中的所有对象最终都是一个字符串。 如果没有必要,我不想总是在末尾写“.Value”。