三次解析json发送错误:
Unity2020.3.42f1c1
void LoadChart()
{
JsonData ChartData = JsonMapper.ToObject(Chart.text);
JsonData ChartData_META = ChartData["META"];
JsonData ChartData_JudgeLineList = ChartData["judgeLineList"];
for (int i = 0; i < ChartData_META.Count; i++)
{
Debug.Log("ChartName = " + ChartData_META[i]["name"]);
Debug.Log("ChartLevel = " + ChartData_META[i]["level"]);
Debug.Log("ChartAuthor = " + ChartData_META[i]["charter"]);
}
for (int o = 0; o < ChartData_JudgeLineList.Count; o++)
{
Debug.Log("LineName = " + ChartData_JudgeLineList[o]["Name"]);
JsonData ChartData_LineEvent = ChartData_JudgeLineList["eventLayers"];
for (int s = 0; s < ChartData_LineEvent.Count; s++)
{
JsonData ChartAlphaEvents = ChartData_LineEvent["alphaEvents"];
for (int a = 0; a < ChartAlphaEvents.Count; a++)
{
Debug.Log("end = " + (int)ChartAlphaEvents[a]["end"]);
}
}
}
}
网上没有三次解析的教程,一些方法都尝试过了
InvalidOperationException: Instance of JsonData is not a dictionary
LitJson.JsonData.EnsureDictionary () (at :0)
LitJson.JsonData.get_Item (System.String prop_name) (at :0)
GameController.LoadChart () (at Assets/Scripts/GamePlay/GameController.cs:32)
GameController.Start () (at Assets/Scripts/GamePlay/GameController.cs:14)
报错很清楚了,目标位置不是个字典
这跟json到底套了几层结构没有关系,不管是10层还是8层,你必须按照它的结构去读取它的内容,代码和数据要对应