C#使用Newtonsoft.Json转换对象出现Could not determine JSON object type for type “Class”错误

  • 2017-08-12
  • 0
  • 0

C#使用得比较多的一个Json解析库,还挺好用的~

但是在转换对象为json的时候,可能会出现Could not determine JSON object type for type “Class”错误

例如这样使用:


ListenRunTimeConfig config = JsonConvert.DeserializeObject<ListenRunTimeConfig>(idol.ToString());

那么这个ListenRunTimeConfig的数据结构是这样的


public class ListenRunTimeConfig
{
public string IdolName { get; set; }
public int RoomId { get; set; }
public int Delay { get; set; }
public int DefaultDelay { get; set; }
public bool TransmitText { get; set; }
public bool TransmitImage { get; set; }
public bool TransmitAudio { get; set; }
public bool TransmitVideo { get; set; }
public bool TransmitFanpai { get; set; }
public bool Pro { get; set; }
public bool First { get; set; }
public long LastTime { get; set; }
public PocketProxy Proxy { get; set; }
public List<long> QQGroups { get; set; }
public RuntimeCount CountInfo { get; set; }
}

具体问题我估计是出在有属性不是基本类型的问题上

解决问题的办法也很简单~

用JToken.FromObject即可

例如这样:


JArray arr = new JArray();
foreach (var idol in PocketPlugins.RunTimeCfg.Keys)
{
ListenRunTimeConfig config = (ListenRunTimeConfig)PocketPlugins.RunTimeCfg[idol];
arr.Add(JToken.FromObject(config));
}
configFile["IdolInfo"] = arr;

评论

还没有任何评论,你来说两句吧