2016-09-15 19 views
0

JSONデータの解析に少し問題があります。JSONデータを同じキーと異なるデータで解析するにはどうすればよいですか?

のWeb APIをそこに持っている、このような基本的な応答データ:異なるtopic_type値で

{ 
    topic_name: "Kevin", 
    topic_type: 1, 
    extraData: {} 
} 

は、extraDataは多分異なるデータ構造を持っている、例えばextraDataオブジェクトは異なるキー値を持っています。

この場合、モデルクラスを作成してJSON文字列をモデルに解析する方法はありますか?

またはこのAPIの設計は妥当ですか?これらのケースを解決するための優れたAPIデザインはありますか?

更新1:同じtopic_type

extraDataの構造は常に同じです。

サブクラスの使用を検討しましたが、すべてtopic_typeのサブクラスが必要です。

アップデート2:

ここでは、JSONデータ、異なるextraDataと異なるtopic_typeいくつかの例です。

topic_type 1に等しく、

{ 
    topic_name: "Kevin", 
    topic_type: 1, 
    extraData: { 
     data_type1: value, 
     data_type2: value2 
    } 
} 

topic_type等しい2に、

{ 
    topic_name: "David", 
    topic_type: 2, 
    extraData: { 
     data_type3: value3 
    } 
} 

それはない実際のデータ、私はない '話題' の問題に対処し、単なる一例、キーはextraDataオブジェクトが異なるタイプキーを持っています。

+0

各topic_typeに追加されているフィールドは分かりますか?それぞれのtopic_typeで常に同じですか?サブクラス化するか、1つのクラスのみを使用するかを決めることができます。 – crom87

+0

この投稿はあなたに役立ちます:http://stackoverflow.com/questions/38842704/how-to-increase-index-of-array-when-the-value-is-dynamic-swift/38844338#38844338 –

+0

extraDataのさまざまなデータモデルの例 –

答えて

0

JSONModelあなたが探しているものと正確に同じかもしれません。 JSONを解析し、クラス内のすべてのタイプを定義するためにあなたのモデル

+0

この素晴らしいプロジェクトを知っています。このプロジェクトは静的モデルを解析できます私のケースでは、 'extraData'の構造は' topic_type'に依存して動的です。 JSONModelはこの問題に対応していますか? –

+0

オプションのプロパティを持つextraDataモデルを作成し、探しているコンテンツを含むextraDataモデルを作成する必要があります。私は過去にjsonのコンテンツを変更したモデルでこれを使用しました – HarmVanRisk

+0

可能なすべてのキーでextraModelを作成することを意味しますか? –

0

試しを与える:

{ 
    topic_name: "Kevin", 
    topic_type: 1, 
    extraData: { 
     data_type1: value, 
     data_type2: value2, 
     data_type3: value3, 
    } 
} 

JSONの構文解析後に、uはトピックの種類に基づいて、必要なデータ型を取ります。

ps。すべてのデータ型をNULLにする必要があります

関連する問題