Tag: json

使用Json.NET自定义反序列化

我上课了 public class Order { public int Id { get; set; } public string ShippingMethod { get; set; } } 我想将下面的JSON数据反序列化为上面的类/对象 string json = @”{ ‘Id’: 1, ‘ShippingMethod’: { ‘Code’: ‘external_DHLExpressWorldwide’, ‘Description’: ‘DHL ILS Express Worldwide’ } }”; 我的想法是JSON中的ShippingMethod是一个对象,但我只想获得ShippingMethod.Code (在JSON中),它将在反序列化期间作为Order类中的string传递给ShippingMethod 。 如何使用Json.NET实现这一目标? 我相信我可以使用CustomJsonConverter来完成它。 但我感到困惑。 文档中的示例仅适用于WriteJson ,但不适ReadJson 。

检查对象是否为字典或列表

使用单声道的.NET 2,我使用的是一个基本的JSON库,它返回嵌套的字符串,对象字典和列表。 我正在编写一个mapper来将它映射到我已经拥有的jsonData类,我需要能够确定object的基础类型是Dictionary还是List。 下面是我用来执行此测试的方法,但是想知道这是否更干净? private static bool IsDictionary(object o) { try { Dictionary dict = (Dictionary)o; return true; } catch { return false; } } private static bool IsList(object o) { try { List list = (List)o; return true; } catch { return false; } } 我正在使用的库是litJson但JsonMapper类本质上不适用于iOS,因此我正在编写自己的映射器。

可以查找Json.net中不存在的Key

我有几个不同的格式,但我无法弄清楚如何处理它们因为当我试图通过密钥json.net崩溃找到。 我希望它只会返回null。 foreach (var item in jsonObj) { var msg = item.Value[“Msg”]; if (msg != null) { txtErrors.Text += msg + Environment.NewLine; } } //格式化一个 {[UserNotFound, { “SeverityType”: 3, “ValidationType”: 2, “Msg”: “Email Not Found” }]} 我的代码有效。 //格式2(因为我没有在服务器端捕获exception) { “Message”: “An error has occurred.”, “ExceptionMessage”: “Object reference not set to an instance of an object.”, […]

是否有现有的库将JSON解析为.net中的Dictionary ?

我希望能够将表示对象的JSON字符串解析为我可以在C#中使用的属性包(如字典)。 鉴于此字符串: {“id”:1,“name”:“some name”,“some parameter”:2} 我想最终得到一个字典,其中包含“id”,“name”和“some parameter”作为键和1,“some name”和2分别作为值。 我不想自己解析JSON字符串 – 也许有一个库(最好是在.net框架中),我可以依赖它来为我解析,以便访问JSON对象中的键/值。 或者是否有可用的解串器,我可以明确告诉哪个.net类型要定位? 在我的场景中,我只会有一个根“对象”(它不会以数组开头)。 谢谢。

使用JSON数组进行RestSharp反序列化

我有一个JSON响应,我正在尝试使用RestSharp反序列化 ,它看起来像这样: {“devices”:[{“device”:{“id”:7,”deviceid”:”abc123″,”name”:”Name”}}, {“device”:{“id”:1,”deviceid”:”def456″,”name”:”Name”}}], “total”:2, “start”:0, “count”:2} 根据我发现的一些建议,我试图像这样设置我的POCO: public class DevicesList { public List Devices; } public class DeviceContainer { public Device Device; } public class Device { public int Id { get; set; } public string DeviceId { get; set; } public string Name { get; set; } } 然后我的执行看起来像这样: // execute the request […]

在反序列化JSON响应时,RestSharp客户端将所有属性返回为null

我正在尝试使用RestSharp的Execute方法查询rest端点并序列化为POCO的一个非常简单的示例。 但是,我尝试的所有内容都会产生一个response.Data对象,该对象具有NULL值的所有属性。 这是JSON响应: { “Result”: { “Location”: { “BusinessUnit”: “BTA”, “BusinessUnitName”: “CASINO”, “LocationId”: “4070”, “LocationCode”: “ZBTA”, “LocationName”: “Name of Casino” } } } 这是我的测试代码 [TestMethod] public void TestLocationsGetById() { //given var request = new RestRequest(); request.Resource = serviceEndpoint + “/{singleItemTestId}”; request.Method = Method.GET; request.AddHeader(“accept”, Configuration.JSONContentType); request.RootElement = “Location”; request.AddParameter(“singleItemTestId”, singleItemTestId, ParameterType.UrlSegment); request.RequestFormat = DataFormat.Json; //when […]

如何在C#中访问JSON对象

我通过Web服务收到以下Json: { report: { Id: “aaakkj98898983” } } 我想获得Id的价值。 如何在C#中做到这一点? 谢谢

使用System.Json进行非Silverlight项目?

有什么想法怎么做? 如果不可能,C#的JSON库是什么?

如何使用Json.NET将XML序列化为JSON对象

我可以将XML序列化为JSON字符串,如下所示: var xml = new XmlDocument(); xml.LoadXml(“John”); string jsonString = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xml, Newtonsoft.Json.Formatting.None); Response.ContentType = “application/json”; Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(jsonString)); 那会给我: “{\”person\”:{\”name\”:\”John\”}}” 但是,如何将其序列化为JSON对象? 像这样: {“person”:{“name”:”John”}}

使用c#通常使Json变平

我想一般地压扁一些json,所以我可以转换为数据表并使用c#绑定到数据网格 什么是最好的办法,记住我不知道我要下多少级别? 例如 {“appointmentmentid”:4,“policyid”:1,“guid”:“00000000-0000-0000-0000-000000000000”,“number”:“1234567890”,“ampm”:“false”,“date”:“ 2015-09-08T00:00:00“,”vehicle“:{”id“:1,”guid“:”00000000-0000-0000-0000-000000000000“,”make“:null,”model“:null} ,“installer”:{“installerid”:“1”,“name”:“Installer 1”,“contact”:“qwerty”,“qascore”:“0”,“address1”:“qwerty”,“address2” :“qwerty”,“address3”:null,“address4”:null,“city”:“qwertyu”,“county”:“qwertyu”,“postcode”:“asdfghj”,“country”:“GB”,“电子邮件“:”asdfghj“,”web“:”asdfghjk“,”archived“:false},”安装“:[{”installationid“:6,”installationstatus“:{”installationstatusid“:4,”installationstatus“:” FAIL“},”isactive“:true},{”installationid“:7,”installationstatus“:{”installationstatusid“:1,”installationstatus“:”NEW“},”isactive“:false}],”archived“:假的 我想扩展这个(我想我可以迭代我转换它的数据表)而不是instal.1.installationid,我会得到installationid1。 因为我要在网格中显示结果数据表,我想保持列名称友好。