无效的JSON字符串,无法发布到c#web api?

时间:2013-10-24 14:36:04

标签: c# json entity-framework asp.net-web-api

我有这个JSON字符串,它有什么问题?我可以通过几个在线JSON测试人员运行它们,他们都说好。但是当这个通过实体框架发布到我的c#web api时,我的帖子体是null。有任何想法吗? 这是POST功能:

public void Post([FromBody]List<AIM.RunningProcess> list_runningprocesses)
{
    if (list_runningprocesses == null) return;

这是JSON字符串:

[
    {
      "PSComputerName":  "eetpcx31v.admin.eetp.local",
      "ProcessName":  "AcroRd32.exe",
      "ProcessID":  14240,
      "CommandLine":  ".C:\\Program Files (x86)\\Adobe\\Reader 10.0\\Reader\\AcroRd32.exe. .C:\\Users\\jmetzler\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files\\Content.Outlook\\VG2QRLL8\\Pöyry_RevealingFlexibilityValueStudy_Proposal_v2_0.pdf.",
      "CreationDate":  "Oct 24 2013 14:21:09",
      "Username":  "jmetzler",
      "RemoteIP":  null
    }
]

显然由于CommandLine属性而失败。 'commandline'的数据库列属性是varchar(8000)。这是'RunningProcess'类。

public partial class RunningProcess
{
    public string PSComputerName { get; set; }
    public string ProcessName { get; set; }
    public string ProcessID { get; set; }
    public string CommandLine { get; set; }
    public Nullable<System.DateTime> CreationDate { get; set; }
    public string Username { get; set; }
    public string RemoteIP { get; set; }
}

有人有任何想法吗?

2 个答案:

答案 0 :(得分:2)

使用http://json2csharp.com/生成您的C#类。答案中的类是从同一站点生成的。

从JSON开始,你的课应该是:

public class RootObject
{
    public string PSComputerName { get; set; }
    public string ProcessName { get; set; }
    public int ProcessID { get; set; }
    public string CommandLine { get; set; }
    public DateTime CreationDate { get; set; }
    public string Username { get; set; }
    public string RemoteIP { get; set; }
}

因为您的ProcessIDint

答案 1 :(得分:-1)

如果我正确地解决了您的问题,请尝试将JSON字符串更改为:

{list_runningprocesses:
[
{
  "PSComputerName":  "eetpcx31v.admin.eetp.local",
  "ProcessName":  "AcroRd32.exe",
  "ProcessID":  14240,
  "CommandLine":  ".C:\\Program Files (x86)\\Adobe\\Reader 10.0\\Reader\\AcroRd32.exe. .C:\\Users\\jmetzler\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files\\Content.Outlook\\VG2QRLL8\\Pöyry_RevealingFlexibilityValueStudy_Proposal_v2_0.pdf.",
  "CreationDate":  "Oct 24 2013 14:21:09",
  "Username":  "jmetzler",
  "RemoteIP":  null
 }
]
}