Tag: json

在JSON.NET中反序列化具有不同名称的对象列表

我从一个网站上获取我的数据,该网站返回一个我不太熟悉的.json格式。 我一直在寻找解决方案几个小时,我必须使用术语。 json的格式如下: [ { “Foo”: { “name”: “Foo”, “size”: { “human”: “832.73kB”, “bytes”: 852718 }, “date”: { “human”: “September 18, 2017”, “epoch”: 1505776741 }, } }, { “bar”: { “name”: “bar”, “size”: { “human”: “4.02MB”, “bytes”: 4212456 }, “date”: { “human”: “September 18, 2017”, “epoch”: 1505776741 } } }] 我正在使用Newtonsoft的JSON.NET,我似乎无法创建一个允许我反序列化它的数据结构,因为它是具有不同名称的类数组。 具体而言,属性名称”Foo”和”bar”在运行时可能不同。 JSON层次结构中其他位置的属性名称是已知的。

从服务器解析UTF8 JSON响应

我正面临一个从我的服务器解析JSON响应的奇怪问题。 在过去几个月以这种方式获得响应(使用Content-Type:text / html)时,它一直运行良好: string response = “”; using (var client = new System.Net.Http.HttpClient()) { var postData = new System.Net.Http.FormUrlEncodedContent(data); var clientResult = await client.PostAsync(url, postData); if(clientResult.IsSuccessStatusCode) { response = await clientResult.Content.ReadAsStringAsync(); } } //Parse the response to a JObject… 但是当收到Content-Type:text / html的回复时; charset = utf8会抛出Content-Type无效的exception。 Exception message: The character set provided in ContentType is […]

使用NewtonSoft将JSON对象反序列化为.Net对象

我有一个json对象,我想反序列化到它的.Net类型而不用它。 我想我在doc中的某处读到你可以将一个属性传递给json,告诉反序列化器它可以尝试强制转换的.Net对象类型。 我找不到我读到的地方。 我想避免使用 var myNewObject = JsonConvert.DeserializeObject(json); 得到这样的东西 MyClass myNewObject = JsonConvert.DeserializeObject(json); 我从HttpRequest获取了我的json对象,并希望从这个嵌套对象中实例化相应的类。 目前对已知项目的反序列化工作良好,但需要更灵活的东西,而无需从解析方法管理所有已知的Object。

在C#WebForm上反序列化动态JSON数组

嗨,我正在我的API上生成一个JSON,我试图在我的Web应用程序中使用代码隐藏C#,但我无法反序列化。 我的JSON有一个带有JSON数组的对象,数组中的元素是动态的,所以我不能用这些项创建一个固定的类,因为我的JSON可以有N个项目。 { “MAINOBJET”: [{ “ITEM1”: “23800”, “ITEM2”: “Dahl; Police”, “ITEM3”: “test@test.net” }, { “ITEM1”: “23802”, “ITEM2”: “Steve ; Police”, “ITEM3”: “test2@test.net” }] } 那么如何将其反序列化为DataTable,列表或字典呢? 谢谢

将JSON单个字符串反序列化为数组

我试图反序列化我的json数据但是我的类没有正确设置我无权更改json响应,所以我需要编写一个函数来正确处理json。 这是数据 { “blabla”: { “-Score”: “1”, “-Ref”: “50”, “foo”: { “-colour”: “Yellow”, “-ref”: “y50” } } } 但有时数据会是 { “blabla”: { “-Score”: “1”, “-Ref”: “50”, “foo”: [ { “-colour”: “Yellow”, “-ref”: “y50” }, { “-colour”: “Green”, “-ref”: “g50” }, { “-colour”: “Red”, “-ref”: “r50” } ] } } 此类适用于第一个数据 public class blabla { public […]

使用自定义XSLT将XML转换为JSON会丢失花括号

我有一个.NET库,它使用XSLT文件将啤酒xml文件转换为json,用于Web应用程序。 XSLT文件看起来很像这样: { { “description”: { “name”: “”, “style”: “”, … 我正在使用c#中的这段代码进行转换: using(var writer = new StringWriter()){ _xsltCompiler.Transform(_document, null, writer); json = writer.ToString(); } 现在,问题是输出中缺少花括号和空格。 它曾经工作过。 从源代码控制历史中,我最近看不到任何明显的变化。 对于如何解决这个问题,有任何的建议吗?

创建一个新的AnonymousType实例

我正在尝试创建一个AnonymousType实例,如下所示: new { Channel = g.Key.Channel, Comment = g.Key.Comment, Count = g.Count() } 在黑暗中,.NET创建一个带有构造函数的AnonymousType,它带有三个参数: String, String, Int32 。 为了创建这个匿名类型的新实例,我做: object[] args = new object[3]; args[0] = “arg1”; args[1] = “arg2”; args[2] = 200; (T)Activator.CreateInstance(typeof(T), args); .NET转发我: 附加信息:在 f__AnonymousType2`3 [[System.String,…],[System.String,…],[System.Int32,…]]’中找不到构造函数。 我不知道为什么CreateInstance试图调用像[[],[],[]]这样的构造函数! 范围 真正的范围有点难以解释: 我创建了一个Linq提供程序。 此提供程序将Linq语句翻译为我的服务器方法。 当我收到json信息时,我需要将此信息投影到用户指定的类型。 在这种情况下: var enumerable = UIContainer.UIController.Instance.getDigitalInputs() .GroupBy(di => new { Channel […]

Json.NET可以反序列化“动态”属性吗?

我的C#服务正在从外部服务接收具有“模糊”格式的对象,如下所示: { “member”: { “”: { “value”:”some_string”, “score”: 10 } } 此属性“”可以针对每个对象进行更改,我没有针对其可能值的已定义和受限列表,当然我无法更改此格式。 有没有人知道Json.NET或其他一些Json .NET序列化程序是否可以帮助我并允许我在下面定义类似Member和DynamicProperty类,我可以使用它来进行简单的反序列化? class Member { [JsonProperty(PropertyName= “??”)] // what should I put here? public DynamicProperty { get; set; } } class DynamicProperty { public string value; public int score; } 谢谢

JSON到C#中的字符串数组

我就是这样的JSON字符串 [ { “markers”: { “0”: “13.775801,100.611199”, “1”: “13.775801,100.611199” } } ] 我想用字符串数组做标记列表。我的JSON格式与那个格式完全相同。它可能不会再改变了。我该怎么做?

在utf-8 json上逃脱重音字符

下面的代码生成此输出: {“x”: “Art. 120 – Incapacità di intendere o di volere”} 我需要改变这个,我想我要改变编码的东西,但我不知道: {“x”: “Art. 120 – Incapacit\u00e0 di intendere o di volere”} 码: string label = “Art. 120 – Incapacità di intendere o di volere”; JObject j = new JObject(); j.Add(new JProperty(“x”, label)); string s = j.ToString(); Encoding encoding = new UTF8Encoding(false); string filename = […]