2012-03-12 12 views
1

.NET用のJSONパーサとエンコーダを探しています。JSONを独自のデータ構造に解析して、それをクラスに直接デシリアライズするのではなく、 Javaでは、私はJettisonJSONObjectJSONArrayを使いやすいです。クラスをデシリアライズ/シリアライズせずにJSONをパース/エンコードする

私は(デ)シリアライズする必要はありません多くの理由があります。

  1. シリアライザは、例えばfastJSONとJSON.NET追加(JSONにメタデータを追加して、直列化復元のためにそのメタデータを必要とする傾向がありますタイプ情報)。
  2. 私は、さまざまな種類のデータをすべて処理するためのクラスを作成する必要がありません。また、私は興味のないフィールドを無視することができますが、プロパティを追加する必要はありません。

何かがありますか、またはJettisonのサブセットを移植する必要がありますか?あなたが指摘シリアライズの

答えて

0

欠点は、少なくともJSON.NETの場合には、実際には存在しない。

  1. JSON.NETは、デフォルトではすべてのメタデータを追加しません。必要に応じてメタデータを追加するように指示できます(たとえば、1つのプロパティで異なるタイプの値を保持できるなど)が、オプションです。
  2. 文字列やキャストを扱うという面倒な作業に置き換えることを除いて、私はずっと悪いと思っています。また、興味のないフィールドは無視して、タイプに追加しないでください。

しかし、本当にそれをしたい場合は、できます。それが返されますアリ、別のオプションとして、

JObject obj = JsonConvert.DeserializeObject<JObject>(json); 

を、あなたはまったくたいタイプを指定する必要はありません:同等のタイプは、あなたには、いくつかのオブジェクトをデシリアライズしたい場合は、単に使用し、JObjectJArrayなので、 JObjectまたはJArray

object objectOrArray = JsonConvert.DeserializeObject(json); 
+0

ありがとうございます。 'JSonConvert.DeserializeObject (json)'はJettisonの 'new JSONObject(json)'に相当します。 –

関連する問題