Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
C# 使用MiniJSON解析JSON字符串中的数组_C#_Json_Unity3d - Fatal编程技术网

C# 使用MiniJSON解析JSON字符串中的数组

C# 使用MiniJSON解析JSON字符串中的数组,c#,json,unity3d,C#,Json,Unity3d,我有一个JSON字符串: {"person":[{"age":"0","name":"John"}]} person是一个列表,可以包含比John更多的人 使用MiniJSON,我如何能够亲自阅读所有人 我正在尝试的是: Dictionary<string, object> dict = MiniJSON.Json.Deserialize(jsonString) as Dictionary<string, object>; List<object> list

我有一个JSON字符串:

{"person":[{"age":"0","name":"John"}]}
person是一个列表,可以包含比John更多的人

使用MiniJSON,我如何能够亲自阅读所有人

我正在尝试的是:

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"]);

但是它说字符[name]是一个空引用。

反序列化这个JSON会返回类似于通过以下方式生成的结构:


我不认为你可以直接把它放到字典里,因此空指针。尝试添加一个断点并查看反序列化的结果,看看是否可以强制转换它,或者如果要使用dict,是否需要迭代结果以将其输入字典。

我猜是将该字符强制转换为dictoanry;正在合并为null。尝试字典字符=列表[0]作为字典;相反,他很有魅力,@MichaelG!请随意使用它作为答案。虽然很奇怪,当我打印字符串[名称]时,它可以作为字典使用,但字典不是字典。将一个角色转换为另一个角色将失败。这意味着列表[0]作为字典将返回null@Daniel为什么要首先指定对象?为什么不显式地指定类型?您不需要强制转换。我还不知道如何使用dynamic,我正在使用的C版本也不允许使用dynamic,但当出现此错误时,我只是在网上学习教程。事实上,我可以,主要问题是我试图直接解析到Dictionary而不是Dictionary。@Daniel这就是为什么您得到空值的原因。那演员阵容将会失败。类型参数之间的继承关系不会转换为字典之间的继承关系
public class Person
{
    public List<PersonElement> PersonList { get; set; }
}

public class PersonElement
{
    public long Age { get; set; }
    public string Name { get; set; }
}