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