相关疑难解决方法(0)

ASP.NET MVC JsonResult日期格式

我有一个控制器动作,有效地简单地返回我的模型的JsonResult.所以,在我的方法中,我有类似以下内容:

return new JsonResult(myModel);
Run Code Online (Sandbox Code Playgroud)

除了一个问题外,这很有效.模型中有一个日期属性,这似乎在Json结果中返回,如下所示:

"\/Date(1239018869048)\/"
Run Code Online (Sandbox Code Playgroud)

我应该如何处理日期,以便以我要求的格式退回?或者如何在脚本中处理上述格式?

javascript asp.net-mvc json

237
推荐指数
8
解决办法
17万
查看次数

Json.Net和ActionResult

我自己建立一个JObject,并希望将其作为ActionResult返回.我不想创建然后序列化数据对象

例如

public ActionResult Test(string id)
{
      var res = new JObject();
      JArray array = new JArray();
      array.Add("Manual text");
      array.Add(new DateTime(2000, 5, 23));
      res["id"] = 1;
      res["result"] = array;
      return Json(res); //???????
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc json json.net

23
推荐指数
2
解决办法
4万
查看次数

在asp.mvc和json中以字符串形式返回枚举

我有一个包含enum属性的类。

我的枚举:

 public enum ToasterType
    {
        [EnumMember(Value = "success")]
        success,
        [EnumMember(Value = "error")]
        error
    }
Run Code Online (Sandbox Code Playgroud)

我的课 :

[Serializable]
    public class ToastrMessage
    {
        [JsonConverter(typeof(StringEnumConverter))]
        public ToasterType ToasterType { get; set; }
         // bla bla bla
    }
Run Code Online (Sandbox Code Playgroud)

通过Json返回课程:

 public async Task<ActionResult> Authentication()
    {
         return Json(this.ToastrMessage(ToasterType.success));
    }
Run Code Online (Sandbox Code Playgroud)

和输出:

在此处输入图片说明

为什么1呢?

但我需要以下内容:

ToasterType: success
Run Code Online (Sandbox Code Playgroud)

c# asp.net enums json

5
推荐指数
1
解决办法
4183
查看次数

无法将List <>对象序列化/反序列化为JSON

我正在开发2个Web应用程序; A&B.现在我在两个Web应用程序中都有一个名为CRUDOutput的共享类: -

public class CRUDOutput
{
    public Operation4 operation { get; set; }
}
public class Operation4
{
    public Result result { get; set; }
    public string name { get; set; }
}
public class Result
{
    public string status { get; set; }
    public string message { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

现在在Web应用程序中我正在返回以下内容: -

[HttpPost]
public ActionResult CreateResource(CreateResource cr)
{
    List<CRUDOutput> co = new List<CRUDOutput>();
            co.Add(JsonConvert.DeserializeObject<CRUDOutput>(crudoutput));
            co.Add(JsonConvert.DeserializeObject<CRUDOutput>(crudoutput2));

    return Json(JsonConvert.SerializeObject(co));
}
Run Code Online (Sandbox Code Playgroud)

现在从Web应用程序B,我调用的操作方法如下: -

try
{
    using (WebClient wc = new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc json json.net

4
推荐指数
1
解决办法
588
查看次数

如何使用JSON.net将枚举序列化为null值

我正在使用第三方REST API,其中一个字段(类型string)具有一组已知的值,我已enum在我的代码中建模.在StringEnumConverter如所描述的从JSON.NET正确串行化所有但这些值中的一个[EnumMemberAttribute]注释.特别是对于此字段,REST API将null值转换为第三方系统中的"系统默认值"; 但是,当JSON.NET序列化时,它使用成员名称而不是注释中描述的值.我知道我可以编写一个自定义转换器来处理这个,但我的问题是,如果有一种方法可以让它在没有一个的情况下工作,因为它只是null没有正确序列化的值?

enum在我的代码我已经定义:

[JsonConverter(typeof(StringEnumConverter))]
public enum InitialScanLevel
{
    [EnumMember(Value = null)]
    SystemDefault,

    [EnumMember(Value = "0")]
    ModelDeviceOnly,

    [EnumMember(Value = "1")]
    InitialAppPopulation,

    [EnumMember(Value = "2")]
    DiscoverSslCerts,

    [EnumMember(Value = "3")]
    DiscoverOpenPorts,

    [EnumMember(Value = "4")]
    AdvancedPortDiscovery,

    [EnumMember(Value = "5")]
    DeepDiscovery
}
Run Code Online (Sandbox Code Playgroud)

对于InitialScanLevel.SystemDefault生成的JSON(不是第三方API期望的)

{
    other fields...,
    "initialScanLevel":"SystemDefault",
    other fields...
}
Run Code Online (Sandbox Code Playgroud)

但应该是

{
    other fields...,
    "initialScanLevel":null,
    other fields...
}
Run Code Online (Sandbox Code Playgroud)

对于InitialScanLevel.DeepDiscovery生成的JSON(这是第三方API期望的)

{
    other fields...,
    "initialScanLevel":"5",
    other fields... …
Run Code Online (Sandbox Code Playgroud)

c# json.net

2
推荐指数
1
解决办法
3317
查看次数

标签 统计

c# ×4

json ×4

asp.net-mvc ×3

json.net ×3

asp.net ×2

enums ×1

javascript ×1