2011-11-08 7 views
3

私は最近made a post here(これは「回答済み」と表示されています)です。Google Calcのjson文字列をWP7 http://www.google.com/ig/calculator?hl=en&q=100GBP=?SEKに解析しています。WP7 Jsonシリアライザは「スペース」を処理しませんか?

は偉大な作業だ - Googleが999を超える数を返さない限り999以上の数ではなく、1000年の、1 000をwritennています。 「スペース」がアプリケーションのクラッシュ/試合を間違っていると認識しているようです。

私はjsonシリアライザ(System.Runtime.Serialization.Json;を使用して)(StringBuilderを使用して)jsonシリアライザを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がスペースとして使用されていても)。 __you__が実際に使用している正確なコードを実際の例外メッセージとともに失敗したものとして表示し、例外をスローしているコード行を示します。 (私は予測をする:実際には、文字列の一部を数値型に変換しようとしているところで失敗する)。 – AnthonyWJones

+0

json.netのような別のパーサーを使ってみましたか?変換の問題ではなく解析の問題である場合は、json.netにお試しください。 –

答えて

0

newtonsoft JSONシリアライザを使用してみてください。 http://json.codeplex.com/ 彼らはWP7用のバイナリを持っている、と(私の見解では)datacontractserializer

は、私はちょうどStackOverflowの上ごmentionned質問の第二の答えは私が話しているものと同じであることに気付きました方が良いです約。あなたの結果としてTと

使用JsonConvert.Deserialize<T>(string json)(一方ExchangeRate?)

+0

これを行うには、Newtonsoftを使用するよりも良い方法はありませんか? – AndreasB

1

一部のヨーロッパの文化が多数のためのスペースの代わりにコンマを使用するので、あなたは文字列を解析する前に、適切なのCultureInfoを使用してみてください:

CultureInfo ci = new CultureInfo("fr-FR"); 
double d = double.Parse("1 000", ci); // returns 1000.0 
関連する問題