【发布时间】:2015-05-18 22:33:45
【问题描述】:
过去一个小时我一直在尝试,但无法获得它。此时我的控制器看起来像
public ActionResult GenerateMasterLink (string assetsJSON)
{
...
}
并且我已经确认它正在传递一个类似的字符串
[["Microsoft","Azure","roman_column.png"],["Microsoft","Azure","runphp.cmd"],["Microsoft","Azure","runphp.cmd"],["Microsoft","Azure","Picture1.png"],["Microsoft","Azure","vertical-align-scrnsht.png"],["Microsoft","Azure","vertical-align-scrnsht.png"]]
我唯一的问题是我如何从中取出该死的东西!
我尝试过创建一个类
public class ThreePartKey
{
public string organizationName { get; set; }
public string categoryName { get; set; }
public string fileName { get; set; }
}
然后完成
ThreePartKey [] assetList = new JavaScriptSerializer().Deserialize<ThreePartKey []>(assetsJSON);
这给了我
加载资源失败:服务器响应状态为 500 (内部服务器错误)
有时在我的浏览器控制台中,有时在我的浏览器控制台中
附加信息:类型 'AllyPortal.Controllers.SurfaceAssetsController+ThreePartKey' 不是 支持数组的反序列化。
作为 Visual Studio 错误。
我已经试验了一百万件事情,但无法做到这一点。我想要的只是在一些 C# 数据结构中拥有 JSON,我可以在我的控制器中实际使用它。有什么建议吗?
【问题讨论】:
-
您是否尝试将其反序列化为
IEnumerable而不是数组? -
@BradleyDotNET 假设我可以做到这一点,那么我该如何获取 JavaScript 数组中每个子数组的组成字符串?
-
啊,您的 JS 数据模型与 C# 不匹配,这也可能有问题。首先尝试让每个对象只保存一个字符串数组(因为这就是它所得到的)。您可以尝试仅访问它,但是 10:1 它不会理解如何将子数组中的非命名字符串映射到您定义的属性。
标签: javascript c# arrays json asp.net-mvc