Опираясь на ответ sktrdie , вы можете использовать ASP.NET AJAX JSON Web Services для передачи и возврата данных в виде объектов JSON. Вот несколько примеров -
В этом вопросе много полезной информации о JSON - Что такое JSON и зачем мне его использовать?
РЕДАКТИРОВАТЬ -
В данный момент вы говорите, что используете SOAP , который является транспортным протоколом на основе XML. Здесь есть очень краткая статья - Расширение существующей веб-службы ASP.NET для поддержки JSON - которая объясняет, как расширить существующую веб-службу
Кроме того, если у вас нет доступа к .NET 3.5 JSON сериализатору / десериализатору, взгляните на библиотеку Джеймса Ньютона Кинга Джеймса Ньютона .
РЕДАКТИРОВАТЬ 2 -
Снова глядя на ваш скриншот и тот факт, что у вас есть атрибут [ScriptService], вы, похоже, возвращаете строку JSON (что, как я понимаю, используется по умолчанию). Поэтому я думаю, что сериализатору ASP.NET AJAX JSON не удалось сериализовать обнуляемый тип double в этой строке
public Dictionary<string, Dictionary<string, double?>> EmployeePaycodeRate;
к правильному типу данных JSON в каждом экземпляре? Вы можете увидеть, так ли это на самом деле, изменив веб-сервис так, чтобы он возвращал значение double, а затем попробуйте выполнить его с данными, имеющими значения.
Согласно MSDN -
Поддерживаемые типы Nullable также поддерживаются и отображаются в JSON таким же образом, что и типы, не допускающие NULL.
Тем не менее, я думаю, что стоит посмотреть аналогично тому, как я предлагал, так как именно здесь возникает ваша проблема
Надеюсь, это поможет
РЕДАКТИРОВАТЬ 3 -
Кажется странным, почему Dictionary со значением Dictionary невозможно представить в виде строки JSON. Учтите, что словарь выглядит так в JSON
[{"Key":"a1","Value":"a1"},
{"Key":"a2","Value":"a2"}]
Таким образом, словарь со значением словаря будет выглядеть так (я считаю)
[{"Key":"a1","Value": {"Key":"b1","Value":"b1"} },
{"Key":"a2","Value": {"Key":"b2","Value":"b2"} }]
, который является действительным JSON согласно JSONLint - валидатор JSON .