2016-06-20 2 views
0

私はMySql Dbにオブジェクトをserializeするためにnewtonsoft dllを使用します。json.net serilalization charと予期しない値を逆直列化

iはチャー使用シリアライズ:私は使用するオブジェクトへのアクセスときに

JsonConvert.SerializeObject(value, typeof(char)) 

を:

var value = JsonConvert.DeserializeObject<Object>(json); 

今値の型は文字列です。

私はタイプがで、文字列ではないと予想しました。

int、string、uint、bool、enumなどのような他の型をシリアル化し、汎用オブジェクトでDeserializeObjectを使用すると、実際の型が得られます。

したがって、Charをシリアル化する方法があります。一般的なオブジェクトを使用して逆シリアル化すると、文字列ではなくcharが得られますか?

ありがとうございました!

+1

ので、charは長さ1デシリアライズの文字列にシリアライズされるJSONには 'char'データ型は、ありません、あなたは型を指定する必要があります。 – Blorgbeard

答えて

0

まず、ニュートンソフトのJSONライブラリを使って2年以上働いています。オブジェクトをシリアライズするときは、決して2番目のパラメータは定義されていませんでした。

ターゲットタイプを定義してJsonオブジェクトを逆シリアル化する必要があります。だから、あなたがコードを最後にcharとすると、あなたのコードは次のようになるはずです。

var value = //somwthing 
var json = JsonConvert.SerializeObject(value, typeof(char)); 
value = JsonConvert.DeserializeObject<char>(json); 
関連する問題