Сериализатор WP7 Json не обрабатывает "пробел"? - PullRequest
3 голосов
/ 08 ноября 2011

Я недавно сделал здесь сообщение (который теперь помечен как "отвеченный" - что это такое) о разборе строк Google Calc json в WP7 http://www.google.com/ig/calculator?hl=en&q=100GBP=?SEK.

Работает отлично -если Google не возвращает число выше 999. Число выше 999 пишется 1 000 вместо 1000 .Кажется, что "пробел" заставляет приложение аварийно завершить работу / понять, что что-то не так.

Мне просто интересно, как я могу сделать сериализатор json (используя System.Runtime.Serialization.Json;) (используяStringBuilder) вернуть сумму / суммы выше 999, без сбоев?

Спасибо:)

КОД:

Здравствуйте!В основном я использую код, найденный здесь: Анализ Google Calculator с Json в Windows Phone 7 / C #?

Чтобы получить коды валюты из списка, я использую:

        ListBoxItem toExchangeSelected= toCurrencyList.ItemContainerGenerator.ContainerFromItem(this.toCurrencyListtaListe.SelectedItem) as ListBoxItem;
        string toCurrency = toCurrencyList.Content.ToString();
        ListBoxItem fromExchangeSelected= fromCurrencyList.ItemContainerGenerator.ContainerFromItem(this.fromCurrencyList.SelectedItem) as ListBoxItem;
        string fromCurrency = fromExchangeSelected.Content.ToString();

Ответы [ 2 ]

1 голос
/ 03 января 2012

Некоторые европейские культуры используют пробелы вместо запятых для больших чисел, поэтому попробуйте использовать соответствующий CultureInfo, прежде чем анализировать строку:

CultureInfo ci = new CultureInfo("fr-FR");
double d = double.Parse("1 000", ci); // returns 1000.0
0 голосов
/ 10 ноября 2011

Попробуйте использовать сериализатор jtons newtonsoft.http://json.codeplex.com/ У них есть двоичные файлы для wp7, и это лучше, чем datacontractserializer (на мой взгляд)

Я только что заметил, что второй ответ на ваш упомянутый вопрос о StackOverflow такой же, како котором я говорю.

Используйте JsonConvert.Deserialize<T>(string json) с T в качестве результата (ExchangeRate?)

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