Tag: json

如何在JSON中为空DataTable包含列元数据

如何在JSON中正确描述列元数据,稍后由Newtonsoft解析以构建ac#DataTable,这样我希望解决获取没有行的DataTable但没有列的问题,我需要列到当我传递一个空表时,使用标签创建并希望使用数据类型。 标准输入的示例: { “BrokerID” : “998”, “AccountID” : “1313”, “Packages”:[ { “PackageID”: 226, “Amount”: 15000, “Auto_sync”: true, “Color”: “BLUE” }, { “PackageID”: 500, “Amount”: 15000, “Auto_sync”: true, “Color”: “PEACH” } ] } 输入空表的示例:{“BrokerID”:“998”,“AccountID”:“1313”,“包”:[]} 当我使用JsonConvert.DeserializeObject(params[“Packages”]);解析时JsonConvert.DeserializeObject(params[“Packages”]); 我没有行,显然没有列,我正在寻找一种方法来描述json体内的列元数据。

在C#.NET 3.5中使用JSON

我找到了一些帮助方法,允许我将对象转换为JSONM和JSON转换为对象。 现在我正在读一个看起来像这样的json文件: /************************************************************************/ /* Coments Here *********************************************************/ /************************************************************************/ //more comments [{ “Id”: 1, “Name”: “HP Up” }, { “Id”: 2, “Name”: “Regeneration” }] 现在,虽然我可以将JSON转换为表示1对象,但我还是要使用C#.NET 3.5将其转换为多个对象?

unit testingWCF行为扩展

这真让我抓狂。 我有一个扩展,我们用它来改变请求的内容响应,如果有错误。 基本上,如果一切正常,它会像往常一样被序列化为JSON,但如果我们得到一个未处理的exception,我们会根据不同的对象进行序列化。 我们需要对此进行unit testing,但我无法弄清楚如何编写它们。 validation它是否有效的方法围绕StatusCode,错误消息实例和响应的ContentType。 要修改回复的响应,我使用WebOperationContext静态类。 我已经看到了模拟这个的例子,但似乎我必须硬编码特殊的逻辑,然后开始渗透到我不想要的实际代码中。 有哪些unit testingWCF行为扩展的最佳方法是什么?

有没有办法从某种类型的JSON.NET JObject中删除节点?

我有一个从API返回的JSON对象,有些节点是数组。 有没有办法让我完全根据“类型”将它们从对象中拉出来? 例如: { “result” : { “field1”: “value1”, “field2” : [ “val2”, “val3” ], “field3” : “val4”, “field4” : “val5” } } 我希望能够删除“field2”,因为它是一个数组。 我不知道如何以一种给我对象类型的方式遍历对象。 我正在使用C#和JSON.NET 6.0.5 谢谢!

使用Json.NET反序列化复杂对象

我需要反序列化从grogle maps api返回的这个json: { “destination_addresses”: [ “Via Medaglie D’Oro, 10, 47121 Forlì FC, Italia”, “Via Torino, 20123 Milano, Italia”, “Via Guglielmo Marconi, 71, 40121 Bologna, Italia”, “Via Irnerio, 40126 Bologna, Italia” ], “origin_addresses”: [ “Via Medaglie D’Oro, 10, 47121 Forlì FC, Italia”, “Via Torino, 20123 Milano, Italia”, “Via Guglielmo Marconi, 71, 40121 Bologna, Italia”, “Via […]

解析Json.NET:“意外的令牌:StartObject”

我正在解析JSON,我收到以下错误: 我正在使用Newtonsoft.Json.NET DLL。 读取字符串出错。 意外的令牌:StartObject。 路径'[0]’,第1行,第2位。 这是我的代码: public static List GetPluginByCategory(string category) { var wc = new WebClient(); var json = wc.DownloadString(“http://api.bukget.org/api2/bukkit/category/” + category); var list = JsonConvert.DeserializeObject<List>(json); return list; } category可以是以下字符串之一: [“管理工具”,“反悲伤工具”,“聊天相关”,“开发者工具”,“经济”,“修复”,“趣味”,“一般”,“信息”,“力学”,“杂项” ,“角色扮演”,“传送”,“网站管理”,“世界编辑与管理”,“世界发电机” 编辑:这是我得到的回应: [{“description”: “Stop users swearing\n”, “name”: “a5h73y”, “plugname”: “NoSwear”}, {“description”: “Be sure that your server rules are read and accepted!”, “name”: […]

c#httpclient PostAsJson发送GET请求而不是POST

我正在使用HttpClient发布post请求。 我不回来405方法。 在fiddler中捕获跟踪时,它会以GET而不是POST的forms出现! using (var client = new HttpClient()) { var url = AppSettingsUtil.GetString(“url”); var response = client.PostAsJsonAsync(url, transaction).Result; } 我知道异步/等待问题。 这是一个简化的示例来说明问题。 是否有某种web.config或machine.config设置可能会影响这个? 其他请求(通过RestSharp发送)正确发送post 这是小提琴手捕获的内容。 在fiddler中重新运行跟踪也会返回405(正如预期的那样)。 手动将其切换到POST并从fiddler运行。 另外,也许是因为该方法被切换到GET,在fiddler中没有捕获到的身体,我不得不手动粘贴在JSON中 GET /*URL*/ HTTP/1.1 Content-Type: application/json; charset=utf-8 Host: /*host*/ Connection: Keep-Alive

使用JsonConverter进行Json.NET自定义序列化 – 如何获取“默认”行为

我的类DataType有一个JsonConverter。 当Json中使用的普通字符串作为DataType类型的属性值时,我想做一些特殊处理。 在值是“完整”对象的情况下,我想进行“正常”反序列化。 这是我的尝试 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.Value != null && reader.ValueType == typeof (string)) { return someSpecialDataTypeInstance; } else if (reader.TokenType == JsonToken.StartObject) { DataType dataType = serializer.Deserialize(reader); return dataType; } else { throw new JsonSerializationException(); } } 但这不起作用,因为这一行:DataType dataType = serializer.Deserialize(reader); 导致无限递归。 这可以轻易地完成吗? […]

json newtonsoft:反序列化包含字符串列表的Object

我对这个json有以下问题: { “EVTS”: { “EVT”: [ { “ID”: “123456”, “KEY1” : “somekey”, “CATEG”: [ “cat1”, “cat2”, “cat3” ] } ]} } 这个c#类: public class myClass{ public string ID { get; set; } public string KEY1 { get; set; } public list CATEG { get; set; } } public class ESObject1 { [JsonProperty(“EVT”)] public List EVT […]

Json.NET在序列化上获得通用属性类型名称?

我试图弄清楚如何从我的API返回一个核心对象 public class Response { public T Data {get;set;} } 其中T是具有属性的某个对象,例如 public class Thang { public string Thing {get;set;} } 使用JsonConvert.Serialize( myResponse ); 将T Data属性作为Data返回,这是正确的。 但是,如果我想使用T的类型名称呢? 因此响应Json实际上会包含一个名为Thang not Data的属性,如下所示。 { “thang”: { “thing” : “hey” } } 我很好奇是否有一个相对简单的方法来使用Json.net,或者您是否必须创建自定义JsonConverter并使用reflection来获取写入时的T类型名称? 谢谢。