Tag: json

C#反序列化动态JSON

我有以下需要反序列化的Json字符串。 {“123456789”: {“short_description”:”Delivered”, “detail_description”:”Your item has been delivered” } } 第一个字段“123456789”是一个id号,所以基本上这个值可能会有所不同,具体取决于被查询的数据。 我在视觉工作室使用C#。 显然,因为第一个字段的值可以更改,所以我不能使用预定义的类来反序列化JSON,因为该字段将用作类名,但字段值与类名不匹配。 有没有办法将其反序列化为某种动态类但仍然访问字段,就好像它是一个预定义的类? 或者有没有办法将其反序列化为预定义的类,即使类名不匹配? 提供此数据的服务是第三方服务,因此我无法控制它。

Json.Net PopulateObject附加列表而不是设置值

我在.Net 4.5上使用Json.Net,当在下面的对象上使用populate对象时,它会使用json的内容递增List,而不是设置其值。 Json.Net JsonConvert.PopulateObject(string, object) 类 class MySettingSubClass { public List MyStringList1 = new List(){“one”, “two”, “three”} } class MySetting { public string MyString = “MyString”; public int MyInt = 5; public MySettingSubClass MyClassObject = new MySettingSubClass(); public List MyStringList2 = new List{“one”, “two”, “three”}; } 当他们最初加载时,一切都是正确的,但是从JSON重新加载MyStringLists都是重复的”one”, “two”, “three”, “one”, “two”, “three”

ASP.NET Web API部分响应Json序列化

我正在实现支持部分响应的Web API。 /api/users?fields=id,name,age 鉴于用户类 [JsonObject(MemberSerialization.OptIn)] public partial class User { [JsonProperty] public int id { get; set; } [JsonProperty] public string firstname { get; set; } [JsonProperty] public string lastname { get; set; } [JsonProperty] public string name { get { return firstname + ” ” + lastname; } } [JsonProperty] public int age { […]

将DateTime转换为JSON DateTime

我有一个返回DateTime字段的WebService。 我得到一个结果/Date(1379048144000)/但是 我想要1379048144000我怎么能实现这一目标。 [WebMethod] public DateTime GetServerDate() { return DateTime.Now; } 通过设置Header Content-Type:application / json; 字符集= UTF-8; 我有一个像/Date(1379048144000)/ 。

C#DataTable到Json?

我想将DataTable作为Json格式在图表上显示。 public JsonResult GetDataTable() { DataTable dt = new DataTable(); dt.Columns.Add(“Jan”); dt.Columns.Add(“Feb”); dt.Columns.Add(“Mar”); dt.Columns.Add(“Apr”); for (int i = 0; i < 10; i++) { dt.Rows.Add(i * 5, i * 10, i * 15, i * 11); } // JsonDataTable = dt to Json return new JsonResult { Data = new { success = true, chartData […]

使用注释使用Json.NET将嵌套的JSON结构反序列化为展平类

是否可以使用JsonProperty批注将嵌套的Json属性映射到非嵌套的.NET成员? 假设你有一些这样的Json: { “id”:9999, “created_date”:”Thu, 23 Jun 2011 12:56:24 +0000″, “pos”:{ “type”:”someType”, “coordinates”:[ 59.323, 18.0654 ] } } 并希望将其反序列化为扁平类MyClass使用 JsonConvert.DeserializeObject(jsonstr); 可以使用注释将Json坐标列表映射到下面的类中的Lat和Lng: public class MyClass { [JsonProperty(“id”)] public int Id { get; set; } [JsonProperty(“created_date”)] public DateTime Created { get; set; } [JsonProperty(“????”)] public float Lat { get; set; } [JsonProperty(“?????”)] public float Lng { get; […]

Json.net自定义枚举转换器

我目前正在使用Json.net在我的应用程序中使用json。 我使用的API为枚举发送了一个特定的字符串格式,例如: 对于类型为TemperatureType的枚举,值为fahrenheit, Celcius json值为: {“result”:[“TemperatureType_fahrenheit”,”TemperatureType_Celcius”]} 我想使用转换器直接管理它以获得IList但也适用于其他枚举类型。 有人有想法吗? 我尝试使用自定义JsonConverter: if (reader.TokenType == JsonToken.String && reader.Value != null) { string value = reader.Value.ToString(); var splitValues = value.Split(‘_’); if (splitValues.Length == 2) { var type = Type.GetType(splitValues[0]); return Enum.Parse(type, splitValues[1]); } } 问题是GetType属性,因为我没有指示所需类型和没有命名空间的参数

将JSON对象反序列化为C#列表

我正在尝试使用Bill Reiss的教程在C#中反序列化给定的JSON文件。 对于非列表中的XML数据,此方法非常有效,但我希望使用以下结构反序列化JSON文件: public class Data { public string Att1 { get; set; } public string Att2 { get; set; } public string Att3 { get; set; } public string Att4 { get; set; } } public class RootObject { public List Listname { get; set; } } 我的问题是使用JSON.Net创建/将数据放入列表,然后在XAML页面上显示列表的能力。 到目前为止我的想法(这是行不通的): var resp = await client.DoRequestJsonAsync(“URL”); […]

Web Api模型绑定和多态inheritance

我问是否有人知道是否有可能将一个inheritance自抽象类的具体类传递给Web Api。 例如: public abstract class A{ A(); } public class B : A{ } [POST(“api/Request/{a}”)] public class Request(A a) { } 目前我已经环顾四周,大多数解决方案似乎都说使用TypeNameHandling会起作用。 JsonMediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter(); jsonFormatter.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto; 然而,事实并非如此。 我的模型也从控制台应用程序传递到webapi。 我已经读过,我可能能够反序列化json对象,在尝试了几次后,我认为这不会起作用。 我已经考虑过创建一个客户模型绑定器,但是我不想让我的应用程序变得更加复杂。 目前我inheritance了3个模型的抽象类,但将来可能会扩展它。 您可能会注意到添加自定义模型绑定器可能需要多个绑定器,除非有一种方法可以为所有类型的抽象类创建一个通用绑定器。 为了在我的控制台应用程序中进行扩展,我已经实例化了类b,然后将其传递给ObjectContent,然后发布到我的webapi item = B(); //serialize and post to web api MediaTypeFormatter formatter; JsonMediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter(); jsonFormatter.SerializerSettings.TypeNameHandling […]

无法让ASP.NET MVC 6 Controller返回JSON

我有一个MVC 6项目,我正在使用Fiddler来测试Web API。 如果我采取以下控制器操作,使用EntityFramework 7返回List。 然后html将呈现正常。 [HttpGet(“/”)] public IActionResult Index() { var model = orderRepository.GetAll(); return View(model); } 但是当我尝试返回Json响应时,我得到502错误。 [HttpGet(“/”)] public JsonResult Index() { var model = orderRepository.GetAll(); return Json(model); } 关于为什么对象没有正确序列化为json的任何想法?