所以,我有一个包含两个类成员的Json文件,如下所示:
{
"Item":
[
{
"itemID": 1,
"name": "Apple",
"description": "fluff",
"value": 2,
"weight": 50,
"quantity": 5,
"type": "Craftable",
"favourited": false,
"rt": null
},
{
"itemID": 2,
"name": "Star Shard",
"description": "fluff",
"value": 2,
"weight": 50,
"quantity": 5,
"type": "Craftable",
"favourited": false,
"rt": null
}
] }
我尝试在运行时将它解析为C#中的列表/数组/或该类的成员,但它失败了。
以下是c#中的代码:
[System.Serializable]
公共类Item_Pickup:MonoBehaviour { public string filepath;
public class Item
{
public int itemID;
public string name;
public string description;
public int value;
public int weight;
public int quantity;
public string type;
public bool favourited;
public RectTransform rt;
public static Item CreateFromJson(string jsonstring)
{
return JsonUtility.FromJson<Item>(jsonstring);
}
void start()
{
filepath = Path.Combine(Application.streamingAssetsPath, "Json1.json");
StreamReader Test = new StreamReader(filepath);
string e = Test.ReadToEnd().Trim();
Item[] items = JsonUtility.FromJson<Item[]>(e);
foreach(var item in items)
{
print(item.name);
//returns null, the list contains no data.
}
} }
上面的代码为数组返回null值,因此它似乎没有正确读取json。
如果我将json设置为包含一个类成员而不是数组的一部分,我可以在运行时轻松读取该类并将其分配给c#脚本中的类。
我是否遗漏了如何正确读取数组内多个类成员的json文件的基本内容?我查看了Newtonsoft,但似乎当前版本的Unity不支持。
答案 0 :(得分:0)
我认为问题出在RectTransform上,Json不支持它,因此无法确定何时进行脱盐。
尝试制作vector3