0
我试图反序列化使用他们$类型属性的json。不过,我得到一个错误,指出“在JSON指定类型没有解决。我不知道我在做什么错。任何帮助是极大的赞赏。
我的JSON
{
movies:
[
{
$type:"RTMoviePageWithSlides",
title:"Reservoir Dogs",
slides:[
{$type:"RTCharacterPage", title:"Mr. Orange", img:""},
{$type:"RTCharacterPage", title:"Mr. Blonde", img:""},
{$type:"RTCharacterPage", title:"Mr. White", img:""},
{$type:"RTCharacterPage", title:"Mr. Pink", img:""},
{$type:"RTCharacterPage", title:"Nice Guy Eddie", img:""},
]
}
{
$type:"RTMoviePageWithSubpages",
title:"Jackie Brown",
pages:[
{$type:"RTActorPage", title:"Pam Gier", other_movies:[]},
{$type:"RTActorPage", title:"Samuel L. Jackson", other_movies:[]},
{$type:"RTActorPage", title:"Robert Forester", other_movies:[]}
]
}
]
}
我的课表
using System.Collections;
using System.Collections.Generic;
public class RTMovieData {
public List<RTMoviePage> movies;
}
public class RTMoviePage {
public string title;
}
public class RTMoviePageWithSlides : RTMoviePage{
public List<RTMoviePage> slides = new List<RTSlidePageData>{};
}
public class RTMoviePageWithSubpages : RTMoviePage{
public List<RTMoviePage> pages = new List<RTPageData>{};
}
public class RTCharacterPage : RTMoviePage
{
public string img;
}
public class RTActorPage : RTMoviePage
{
public List<string>other_movies;
}
反串行化代码
var settings = new JsonSerializerSettings();
settings.TypeNameHandling = TypeNameHandling.Auto;
RTMovieData data = JsonConvert.DeserializeObject<RTMovieData>(jsonString, settings);
@Programmer提到邮报“的反序列化在Unity C#中使用MiniJSON的JSON作为这篇文章的副本。但是,这两个职位根本没有关系。另一篇文章描述了一位正在使用不同JSON解串器的用户,并且在获取数组反序列化时遇到问题。我的问题是特定于使用$ type属性来帮助反序列化器实例化这篇文章的标题中陈述的子类。
的([在Unity C#中使用MiniJSON JSON的反序列化]可能的复制http://stackoverflow.com/questions/36239705/deserialization-of-json-using-minijson- in-unity-c-sharp) – Programmer
如果在$ type属性中包含完整的'namespace.classname',会发生什么? http://stackoverflow.com/a/28125077/424129 –
我没有使用名称空间。加一个没有帮助 – znerolnoht