Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery.parseJSON无法解析序列化的C#字典_Javascript_Jquery_Json_Serialization - Fatal编程技术网

Javascript jQuery.parseJSON无法解析序列化的C#字典

Javascript jQuery.parseJSON无法解析序列化的C#字典,javascript,jquery,json,serialization,Javascript,Jquery,Json,Serialization,我正在用它把一本C#字典连载。 C#字典被序列化为字符串。 @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ElementDivIDs))的工作方式非常出色。这是我得到的输出: var jsonString = {"9":["ele9-tabs-attr9","ele9-tabs-attr48"],"10":["ele10-tabs-attr10"],"11":["ele11-tab

我正在用它把一本C#字典连载。 C#字典被序列化为字符串。
@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ElementDivIDs))
的工作方式非常出色。这是我得到的输出:

  var jsonString = {"9":["ele9-tabs-attr9","ele9-tabs-attr48"],"10":["ele10-tabs-attr10"],"11":["ele11-tabs-attr11"],"12":["ele12-tabs-attr12","ele12-tabs-attr49"],"13":["ele13-tabs-attr13"],"14":["ele14-tabs-attr14"]}
我想将其转换为Javascript关联数组。 但是对jquery.parseJSON的调用返回NULL

var dictionaryOfOtherDivs=jQuery.parseJSON(jsonString)

字典yofotherdivs
在此之后为空

这是我的密码:

<script type="text/javascript">
$(document).ready(function () {
     var jsonString = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ElementDivIDs))
     console.log(jsonString); 
     var dictionaryOfOtherDivs  = jQuery.parseJSON( jsonString ); 
     for(var dictKey in dictionaryOfOtherDivs)
     { 
        console.log("key = " + dictKey + ", value = " + dictionaryOfOtherDivs[dictKey]); 
     }
     //Do some more things
});
</script>

$(文档).ready(函数(){
var jsonString=@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ElementDivIDs))
log(jsonString);
var dictionaryOfOtherDivs=jQuery.parseJSON(jsonString);
for(字典中的var dictKey FOTHERDIVS)
{ 
log(“key=“+dictKey+”,value=“+dictionaryOfOtherDivs[dictKey]);
}
//多做一些事情
});

这不是JSON字符串;这是一个普通的对象文本


您不需要解析它。

jQuery.parseJSON
获取一个字符串并输出一个对象。但是,您决定将JSON本身直接注入到脚本中,因此JavaScript引擎已经将其解析为对象文本,就好像您已经将整个内容作为常规代码编写一样


简单地说,您已经有了一个已解析的对象文本,不再需要进行任何解析。

谢谢。我认为
JavaScriptSerializer.Serialize()
返回一个字符串,而不是一个对象文本。我刚刚测试过,我可以使用for-in循环访问键和值,还可以使用
jsonString[keyName]
访问指定值,谢谢Mattias的解释。接受SLaks的答案,因为它是第一个。