我正在尝试使用Json.Utilities将GameInfo.json文件转换为List数组。我想操纵这个List数据 我的项目包括5个组成部分(日期,锦标赛名称,pos,轮次,总分) 这是我的Json文件(GameInfo.json)
{"Items":
[
{
"date":"11/06/16",
"tournamentName":"Shriners Hospitals for Children Open",
"pos":"2",
"rounds":"62 67 70 67 --",
"totalScore":"288"
},
{
"date":"11/06/16",
"tournamentName":"Shriners Hospitals for Children Open",
"pos":"2",
"rounds":"62 67 70 67 --",
"totalScore":"288"
}
]
}
游戏信息类包括5个数据,GameInfolist类将用于制作列表结构。 GameInfo.json文件转换为GameInfo。 之后,游戏信息存储为字符串类型(jsonstring) 通过使用unity.utilities,我尝试将我的字符串数据存储到List中,以便操纵我的数据。 但是,我无法访问foreach循环。(我无法看到Debug.Log消息)。 你能帮我解决我的问题吗?感谢您阅读
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class GameInfoList
{
public GameInfo gameInfo;
public string[,] Items = new string[2,5];
public List<GameInfo> list = new List<GameInfo>();
}
[System.Serializable]
public class GameInfo
{
public string date;
public string tournamentName;
public string pos;
public string rounds;
public string totalScore;
}
public class JsonDataConverter : MonoBehaviour
{
public string path = "GameInfo.json";
public string jsonstring;
GameInfoList gameInfoList;
public string JsonFileToString(string path)
{
Debug.Log("test");
string loadJsonfile = path.Replace(".json", "");
TextAsset loadedfile = Resources.Load<TextAsset>(loadJsonfile);
jsonstring = loadedfile.text;
Debug.Log("jsonstring:" + jsonstring);
return jsonstring;
}
public void Awake()
{
Debug.Log("testawake");
jsonstring = JsonFileToString(path);
gameInfoList = JsonUtility.FromJson<GameInfoList>(jsonstring);
}
public void Start()
{
foreach (var object in gameInfoList.list)
{
Debug.Log("reach to Inside Loop");
Debug.Log(object .date);
Debug.Log(object .pos);
Debug.Log(object .rounds);
Debug.Log(object .totalScore);
}
}
}
答案 0 :(得分:2)
'参数超出范围'意味着'gameInfoList'等于null,我认为问题出在这一行。
gameInfoList = JsonUtility.FromJson<GameInfoList>(jsonstring);
我认为json字符串只能转换为对象GameInfoList,如下所示:
[System.Serializable]
public class GameInfoList
{
public List<GameInfo> Items;
}