首页 > 解决方案 > 如何在asp.net mvc视图中使用javascript访问json对象中数组的长度

问题描述

我想用 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 属性的长度,例如遍历其中的证书并将其作为 ap 元素添加到 div 中。

尝试运行我的脚本时总是出现此错误:

Uncaught TypeError: Cannot read property 'Certificates' of undefined

谢谢您的帮助。

标签: javascriptc#model-view-controllercertificate

解决方案


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


推荐阅读