我正在尝试将一个dotnet Web API核心项目放在一起。我根据遇到的教程以及其他链接整理了一些内容。基本上,我需要从POST调用中解析并提取一些JSON数据,尤其是'fld-val-list'中的内容:
{
"attempt": 1,
"event": {
"evt-tp": "<some string>",
"fld-val-list": {
"application_id": 9999,
"company-id": 9999,
"fragments_count": 1,
"from_address": "<some val>",
"has_attachment": false,
"message_body": "This is some text",
},
},
}
这是我的POST方法的摘要:
[HttpPost]
public async Task<ActionResult<IEnumerable<FldValList>>> PostInputMessage(MyMessage message)
{
_context.FieldValLists.Add(message.@event.fld_val_list);
await _context.SaveChangesAsync();
return CreatedResult();
}
这是从json2csharp生成的类信息:
public class FldValList
{
public int application_id { get; set; }
public int __invalid_name__company-id { get; set; } <--I replaced with company_id
public int fragments_count { get; set; }
public string from_address { get; set; }
public bool has_attachment { get; set; }
public string message_body { get; set; }
}
public class Event
{
public string __invalid_name__evt-tp { get; set; } <--I replaced with evt_tp
public FldValList __invalid_name__fld-val-list { get; set; } <--I replaced with fld_val_list
}
public class MyMessage
{
public int attempt { get; set; }
public Event @event { get; set; }
}
其中MyMessage是映射数据的外部类。 在http://json2csharp.com/中,我可以创建C#类,但是其中的键中带有“-”的键存在问题。我尝试用'_'替换'-',但它们不会自动映射出来(因此会分配空值)。我读到C#不允许在其中使用变量名“-”。如何使用类来解析JSON输入?