【问题标题】:How to access length of an array in a json object using javascript in asp.net mvc view如何在asp.net mvc视图中使用javascript访问json对象中数组的长度
【发布时间】:2020-12-08 17:18:03
【问题描述】:

我想用 javascript 访问 json 对象中数组的长度。我在 JSON 对象中解析我的视图的列表模型并尝试访问它。 这是我的功能:

<script>
    function showCerts(storeName) {
        var store = storeName;
        var model = '@Html.Raw(Json.Encode(Model))';
        var obj = JSON.parse(model);
        for (var i = 0; i < Object.keys(obj[store].Certificates).length; i++) {
            var node = document.createElement("p");
            var textNode = document.createTextNode(obj[store].Certificates[i].FingerPrint);
            node.appendChild(textNode);
            document.getElementById("certs").appendChild(node);
        }
    }
</script>

JSON 对象如下所示:

[{"Name":"ClientAuthIssuer","ServerName":"servername","Certificates":[
{"id" = 0, "Name" = "CertName"}, 
{"id" = 1, "Name" = "CertName"}, 
{"id" = 2, "Name" = "CertName"}]},
{"Name":"Disallowed","ServerName":"servername","Certificates":[
{"id" = 0, "Name" = "CertName"}, 
{"id" = 1, "Name" = "CertName"}, 
{"id" = 2, "Name" = "CertName"}]},
{"Name":"MY","ServerName":"servername","Certificates":[
{"id" = 0, "Name" = "CertName"}, 
{"id" = 1, "Name" = "CertName"}, 
{"id" = 2, "Name" = "CertName"}]}
]

我想获取 ClientAuthIssuer 的 Certificates 属性的长度,例如遍历其中的证书并将其作为 p 元素添加到 div。

我在尝试运行我的脚本时总是收到此错误:

Uncaught TypeError: Cannot read property 'Certificates' of undefined

感谢您的帮助。

【问题讨论】:

  • 那么当这个错误发生时storeName的值是多少呢?您也不需要使用 Object.keys() 来遍历数组
  • 我有一个名为“ClientAuthIssuer”的按钮,它调用javascript函数并将参数“ClientAuthIssuer”作为storename传递给函数。

标签: javascript c# model-view-controller certificate


【解决方案1】:

这个错误信息很明显我规定你的 obj[store] 是未定义的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-26
    • 2018-08-21
    • 1970-01-01
    • 2015-04-20
    • 2022-07-06
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    相关资源
    最近更新 更多