2016-09-04 3 views
0

У меня есть маршрут, который возвращает словарь, как это:Ошибки сериализации словаря в Нанси

public class HomeModule : NancyModule 
{ 
    public HomeModule() 
    { 
     Get["/"] = _ => new Dictionary<long, long> {{1, 2}, {3, 4}}; 
    } 
} 

Когда я называю это я получил ответ со статусом 200, но с телом ответа, как так:

Unexpected 'E' 

Что не так?

Nancy версия 1.4.3.

ответ

1

ключи JSON должны быть строка, поэтому словарь должен быть в следующем формате:

public class HomeModule : NancyModule 
{ 
    public HomeModule() 
    { 
     Get["/"] = _ => new Dictionary<string, long> {{"1", 2}, {"3", 4}}; 
            //^
    } 
} 

И результат будет:

{ 
    "1": 2, 
    "3": 4 
} 
0

Существует расширение для IResponseFormatter вы могли бы используйте в модуле, который разрешит эту проблему для вас.

this.Response.AsJson(new Dictionary<int,int>{{2,4}}); 
Смежные вопросы