2013-09-23 3 views
1

Учитывая этого запрос DTOСтранное содержания в JSON десериализации результате

public class CreateRecordRequest { 
    public Dictionary<string, object> Record { get; set; } 
} 

, когда я называю сервис передачи этой JSON

{ 
    "Record": { 
     "File": { 
      "name": "DSC_3493_4_5.jpg", 
      "extension": ".jpg", 
      "size": 596002, 
      "rawFile": {} 
     }, 
     "Notes": "", 
     "Type": "" 
    } 
} 

File имеет десериализованное значение "{". Поскольку ServiceStack не имеет способа узнать, к какому объекту относится File, мне любопытно, почему он не десериализует его как словарь ("{" необъяснимо). Каков самый простой способ настроить десериализацию одного значения, подобного этому? Я работаю с контролем загрузки Kendo, и это JSON, который он представляет.

ответ

1

Потому что это object сериализатором не знает, какой тип обезвоживают это в, вы можете заставить его использовать Dictionary<string,string> с:

JsConfig.ConvertObjectTypesIntoStringDictionary = true; 
+0

Если я определить класс File, есть простой способ десериализировать его до этого, кроме копирования значений словаря? – Daniel

+0

Только для ссылочных типов, в которых у вас определен «объект». Если в Схеме указан тип «Файл», он должен использовать это. – mythz

Смежные вопросы