使用
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
以下正确反序列化我的JSON数组:
public List<PrintJobTranslation> Translations
以下不是:
public PrintJobTranslations Translations
与
public class PrintJobTranslations : List<PrintJobTranslation>
{
public string GetTranslation(string Key, string defaultValue)
{
var translation = this.FirstOrDefault(x => x.Key == Key);
if (translation == null) return defaultValue;
return translation.Translation;
}
}
它抛出错误:
System.Collections.Generic.Dictionary`2 [System.String,System.Object] ist kein Wert des Typs Print.printJob.PrintJobTranslation und kann in dieser generischen Sammlung nicht verwendet werden。参数名称:值
我没有找到确切的翻译,但应该是英文的:
System.Collections.Generic.Dictionary`2 [System.String,System.Object]不是Print.printJob.PrintJobTranslation类型的值,不能在泛型集合中使用。参数名称:值
如何正确地反序列化JSON?
答案 0 :(得分:2)
完全支持这一步的一种方法是不要那样做 - 你的方法看作是一种&#34;扩展方法&#34;,所以它&#39; ll 工作喜欢一个实例方法,但实际上不需要子类化任何东西:
public static class PrintJobTranslationExtensions
{
public static string GetTranslation(
this List<PrintJobTranslation> list, string Key, string defaultValue)
{
var translation = list.FirstOrDefault(x => x.Key == Key);
if (translation == null) return defaultValue;
return translation.Translation;
}
}
并在代码中使用List<PrintJobTranslation>
。