我正在使用 C#(通过 Unity3D 中的 Mono)使用 JsonFx 来序列化一些数据,但是当我尝试反序列化数据时,我得到:“JsonTypeCoercionException:只有具有默认构造函数的对象才能被反序列化。(Level [])”。
我尝试向序列化类添加默认构造函数,但仍然出现错误。Fwiw,我在类似的线程中尝试了不同的建议:http: //forum.unity3d.com/threads/117256-C-deserialize-JSON-array
这是我的代码:
//C#
using System;
using UnityEngine;
using System.Collections;
using JsonFx.Json;
using System.IO;
public class LoadLevel : MonoBehaviour {
string _levelFile = "levels.json";
Level[] _levels;
void Start () {
if (!File.Exists (_levelFile)){
// write an example entry so we have somethng to read
StreamWriter sw = File.CreateText(_levelFile);
Level firstLevel = new Level();
firstLevel.LevelName = "First Level";
firstLevel.Id = Guid.NewGuid().ToString();
sw.Write(JsonFx.Json.JsonWriter.Serialize(firstLevel));
sw.Close();
}
// Load our levels
if(File.Exists(_levelFile)){
StreamReader sr = File.OpenText(_levelFile);
_levels = JsonReader.Deserialize<Level[]>(sr.ReadToEnd());
}
}
}
这是它正在序列化的对象:
using UnityEngine;
using System.Collections;
using System;
public class Level {
public string Id;
public string LevelName;
public Level() {}
}
有任何想法吗?我已经尝试过使用和不使用 Level() 构造函数。