【发布时间】:2019-03-01 15:21:46
【问题描述】:
我是一名 c# 初学者(但对 JavaScript 非常熟悉),我正在通过调试示例代码来学习。我现在有一个关于“立即窗口”的问题。
我设置了一个断点
(... nested object sent via JSON from some external javascript code ...)
var json_serializer = new JavaScriptSerializer();
var value_list = (IDictionary<string, object>)json_serializer.DeserializeObject(value);
然后在即时窗口中评估以下内容
value_list
Count = 4
[0]: {[type, msg]}
[1]: {[settings, System.Collections.Generic.Dictionary`2[System.String,System.Object]]}
[2]: {[hello, edge]}
[3]: {[txt, notepad.exe]}
value_list["txt"]
"notepad.exe"
value_list["settings"]
Count = 2
[0]: {[host, test.com]}
[1]: {[port, 80]}
到目前为止一切顺利。
然后我尝试了
value_list["settings"]["host"]
但只收到“错误 CS0021:无法使用 [] 将索引应用于“对象”类型的表达式”。
如何在即时窗口中打印主机的值?
【问题讨论】:
-
如果您只是在学习,请放弃并忘记课程
JavaScriptSerializer曾经存在过。使用 NewtonSoft.Json 包,它已经是很长时间的标准了 -
是的,JsonConvert 更好
-
JavascriptSerializer 是一个过时的类,早在 AJAX 首次出现时就引入了。自 ASP.NET Web API 以来的每个堆栈都使用 JSON.NET,即 NewtonSoft.Json。只是不要使用 JavascriptSerializer
-
已注意到(我已经在 Microsoft 的 API 文档中看到了相同的建议)。
标签: c# javascriptserializer immediate-window