JsonConvert локализованное число с десятичными знаками в json.net - PullRequest
1 голос
/ 26 мая 2011

Я использую json.net для сериализации и десериализации объекта. Единственная проблема заключается в том, что когда я пытаюсь десериализовать объект, он не может проанализировать только что созданные им значения double. При сериализации он делает десятичный символ ., но при попытке десериализации он ожидает ,

Проблема может заключаться в том, что я запускаю десериализацию в приложении на устройстве. И устройство может быть настроено на другую локализацию, чем сервер, который создает JSON.

Так можно ли заставить json.net десериализовать double с . в качестве десятичного знака, независимо от того, каким может быть локализованное форматирование?

edit В кодеклексе json.net произошла ошибка, но все было наоборот. Я попытался переключить свой тип с double do decimal, и теперь он работает отлично ...

edit2:

class Spot
{
    int Id;
    string Name;
    double Distance;
    double Rating;
}

И я думаю, культура по умолчанию - это системная культура, верно? Какой будет норвежский (nb-NO)

Вот вывод. И, как вы можете видеть, я отправляю двойные таверны с , для значений latlong, которые анализируются как double в службе.

1 Ответ

0 голосов
/ 26 мая 2011

Похоже, что это может быть ошибкой в ​​Json.NET.

Десятичный разделитель всегда должен быть . согласно спецификации JSON (см. Раздел 2.4).

Сказав это, возможно - я не знаю - что Json.NET может позволить вам переопределить культуру, которая используется при попытке десериализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...