【发布时间】:2019-02-14 16:32:46
【问题描述】:
我有这个 JSON 字符串:
{"person":[{"age":"0","name":"John"}]}
“person”是一个列表,可以包含比 John 更多的人。
使用MiniJSON,如何读取“person”中的所有人?
我正在尝试什么:
Dictionary<string, object> dict = MiniJSON.Json.Deserialize(jsonString) as Dictionary<string, object>;
List<object> list = (List<object>)(dict["person"]);
Dictionary<string, string> character = list[0] as Dictionary<string, string>;
print(character["name"]);
但它说 character["name"] 是一个空引用。
【问题讨论】:
-
我的猜测是那个字符被转换为字典
;正在合并为空。尝试 Dictionary character = list[0] as Dictionary ;而是。 -
作为魅力,@MichaelG!随意使用它作为答案。虽然奇怪的是,当我打印
(string) character["name"]时它作为 Dictionary工作 -
Dictionary<string,string>不是Dictionary<string,object>。将一个转换为另一个将失败。这意味着list[0] as Dictionary<string, string>将返回一个null -
@Daniel 你为什么首先指定
object?为什么不明确指定类型?你不需要投射。 -
目前还不知道使用
dynamic,在我正在使用的C#版本上也不允许使用,但是我只是在互联网上学习教程时出现此错误。