2011-11-08 2 views
3

내가 최근에 made a post here (이제 "답변 됨"으로 표시됨)입니다. Google Calc json 문자열을 WP7 http://www.google.com/ig/calculator?hl=en&q=100GBP=?SEK으로 구문 분석하려고합니다.WP7 Json 시리얼 라이저가 "공간"을 처리하지 못합니까?

좋은 일하고있어 - 구글은 999 위의 숫자를 반환하지 않는 한 999 위의 숫자 대신 1000의 1, 000을 writenn된다. "공간"이 응용 프로그램 충돌/시도 잡기에 뭔가 잘못되었다는 것을 알리는 것처럼 보입니다.

json serializer (System.Runtime.Serialization.Json;) (StringBuilder 사용)를 사용하여 json serializer를 999보다 큰 값으로 반환 할 수 있는지 궁금합니다.

감사합니다 :)

CODE :

안녕하세요! 내가 주로 여기에있는 코드를 사용하고 있습니다 : 목록 상자에서 통화 landcodes을 얻기 위해 Parse Google Calculator with Json in 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(); 
+0

하나 이것은 일반적인 0x20 공간이 아니라는 것을 관찰합니다. 인코딩 문제가있을 수 있습니다. 시퀀스는 U + 00A0에 대해 UTF-8 인'c2 a0'입니다. NO-BREAK SPACE – CodesInChaos

+1

공간으로 \ u00A0을 사용하는 경우에도이 문제를 재현 할 수 없습니다. 실제 예외 메시지와 함께 실패하고 예외를 throw하는 코드 줄을 나타내는 __you__이 (가) 실제로 사용하고있는 정확한 코드를 표시하십시오. (나는 예측을 할 것인데, 실제로 문자열의 일부를 숫자 형식으로 변환하려고 시도하는 곳에서 실패합니다.) – AnthonyWJones

+0

json.net과 같은 다른 파서를 사용해 보셨습니까? 파싱 ​​문제가 아니라 변환 문제가 아니라면 json.net을 시도해보십시오. –

답변

0

는 newtonsoft JSON 시리얼 라이저를 사용해보십시오. http://json.codeplex.com/ 그들은 WP7에 대한 바이너리를 가지고 있고, (내보기로) datacontractserializer

난 그냥에 StackOverflow에 당신 했나요 질문의 두 번째 대답은 내가 이야기하고있는 것과 동일한 것으로 나타났습니다 것이 더 낫다 약.

당신의 결과 (환율 검색?) 당신이 문자열을 구문 분석하기 전에

+0

Newtonsoft를 사용하는 것보다 더 좋은 방법은 없습니까? – AndreasB

1

일부 유럽 문화 대신 많은 수의 쉼표의 공간을 사용하므로 적절한은 CultureInfo를 사용하려고 같은 T와 함께 사용 JsonConvert.Deserialize<T>(string json) :

CultureInfo ci = new CultureInfo("fr-FR"); 
double d = double.Parse("1 000", ci); // returns 1000.0 
관련 문제