2016-05-18 7 views
1

私はこのようなJSON文字列を持っている:空白のフィールドでjsonを逆シリアル化する方法

[{ 
     "_id": "abcd", 
     "name": "bender rodriguez", 
     "meta": { 
     "location": {} 
     }, 
     dob": , 
} 
] 

セクションDOBが吹くまで後:

return new JavaScriptSerializer().Deserialize<T>(json); 

を問題が空DOBです。私はこのようなことを処理する方法を見つけることができないようです。よくある問題ではないようですね。私はjsonをデシリアライズするのにあまり慣れていませんが、string.replace(": ,"," : null,")以外の方法をどのように扱うことができますか?

+0

あなたのコードスニペットが適切にフォーマットされている場合、見落とされているマルコの言葉はより明らかです。 –

+0

JSONはどこから来たのですか?現在空の値では有効ではありません。 – Steve

+0

'dob":、 '行に先行する引用符がないか確かめてください。質問に誤字がありますか? – dbc

答えて

1

あなたが使用しているJSONデシリアライザは問題ありません。デシリアライスしようとしているJSONが間違っています。値がなく、dobプロパティの最初の二重引用符がありません。

JSONLintを使用してJSONを検証します。 ない場合にJSONが適切にそれをシリアル化するためにJSON serializerを使用し、その後、あなたがコントロールコンポーネントから来ている場合は、あなたがこれを使用して、その特定の問題を解決することができます

string myJson = "[{ \"_id\": \"abcd\", \"name\": \"bender rodriguez\", \"meta\": { \"location\": {} }, dob\": , } ]"; 

JavaScriptSerializer().Deserialize(myJson.Replace("dob\": ", "\"dob\": \"\"")); 

しかし、データが変更された場合、それが持つ保ちますJSON形式が無効ですが、それについてはほとんどできませんが、有効なJSONデータを送信するためにそのコンポーネントを行った人に尋ねることはほとんどありません。

関連する問題