【问题标题】:Format JSON response using ASP.NET JsonResult Class使用 ASP.NET JsonResult 类格式化 JSON 响应
【发布时间】:2015-04-09 16:47:24
【问题描述】:

我正在尝试将 BlueImp jQuery 文件上传组件集成到我的 ASP.NET 4 网站中。我有文件上传工作并写入磁盘,但该组件要求我以特定格式从服务器返回一个 JSON 对象作为成功确认:

{"files": [
  {
    "name": "picture1.jpg",
    "size": 902604,
    "url": "http:\/\/example.org\/files\/picture1.jpg",
    "thumbnailUrl": "http:\/\/example.org\/files\/thumbnail\/picture1.jpg",
    "deleteUrl": "http:\/\/example.org\/files\/picture1.jpg",
    "deleteType": "DELETE"
  },
  {
    "name": "picture2.jpg",
    "size": 841946,
    "url": "http:\/\/example.org\/files\/picture2.jpg",
    "thumbnailUrl": "http:\/\/example.org\/files\/thumbnail\/picture2.jpg",
    "deleteUrl": "http:\/\/example.org\/files\/picture2.jpg",
    "deleteType": "DELETE"
  }
]}

我想使用 JsonResultClass 在我的 C# 中返回此对象,但我不确定如何正确格式化响应。我大概可以这样做:

var uploadedFiles = new List<object>();

uploadedFiles.Add(new { name = "picture1.jpg", size = 902604, url = "http://example.org/files/picture1.jpg", thumbnailUrl = "http://example.org/files/thumbnail/picture1.jpg", deleteUrl ="http://example.org/files/picture1.jpg", deleteType = "DELETE" });
uploadedFiles.Add(new { name = "picture2.jpg", size = 902604, url = "http://example.org/files/picture1.jpg", thumbnailUrl = "http://example.org/files/thumbnail/picture1.jpg", deleteUrl ="http://example.org/files/picture1.jpg", deleteType = "DELETE" });

return Json(uploadedFiles);

...但是我不确定如何将其包装在外部“文件”对象中。

任何人都可以在这里指出正确的方向(一个正在尝试学习的 .NET 新手!)。我查看了MSDN documentation,但没有详细介绍格式化或构造更复杂的 JSON 对象。

非常感谢。

【问题讨论】:

标签: c# json asp.net-mvc asp.net-mvc-4 jsonresult


【解决方案1】:

替换:

return Json(uploadedFiles);

与:

return Json(new {files = uploadedFiles});

使用属性“files”创建一个新的匿名类型,该类型将您的原始列表作为值。

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
  • 我看不出我的答案是如何解决的:“但是我不知道如何将它包装在外部 'files' 对象中。”
  • 您能否帮助遇到此问题的其他人了解您的解决方案以及如何在 OP 的代码中使用它?
猜你喜欢
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 2010-10-18
相关资源
最近更新 更多