2017-12-21 51 views
0

enter image description here 上記のタイプの応答に対してpojoクラスを生成する方法を教えてください。改造2.0:動的オブジェクト用のpojoクラスの生成方法

私はすでにあなたが試してみたい場合はhttp://www.jsonschema2pojo.org/とRoboPOJOGenerator

私のJSON文字列が一撃でみました。

{ 
"availableDates": { 
    "2017-12-31": { 
     "from": "08:00", 
     "to": "17:00" 
    }, 
    "2017-12-21": { 
     "except": [ 
      { 
       "from": "14:00:00", 
       "to": "14:10:00" 
      }, 
      { 
       "from": "14:11:00", 
       "to": "14:21:00" 
      } 
     ] 
    } 
} 

}

+0

として解析された値を読むことができるだろう、私はあなたの質問を理解していました。あなたのキーが変わるかもしれないサーバーからの動的な応答があります。したがって、改造の際には、以前からPojoクラスを静的に提供する必要があります。あなたはこの時点で立ち往生しています。あなたの答えを入力する – ABDevelopers

+3

JSONをテキスト形式 –

+0

に投稿してください。このhttp://pojo.sodhanalibraryを試してください。com/ –

答えて

2

これを動的に行うことはできません。あなたはHashMapを使ってそのようなJSONを解析することができますが。

あなたがこれを行うには興味があるなら、それは上記のHashMapへページのJSONをパースするページセクションの構文を下回る

private HasMap<String, Page> pages; 

を使用しています。キーとページとして "1"、 "2"などを値として使用します。現在のJSONあなたを1として


、解決策は

public class AvalDate { 
    private HashMap<String, AvailableTimeSlot> availableDates; 
} 

public class AvailableTimeSlot { 
    private String from; 
    private String to; 
    private ArrayList<ExceptTimeSlots> except; 
} 

public class ExceptTimeSlots { 
    private String from; 
    private String to; 
} 

今、あなたは

HashMap<String, AvailableTimeSlot> slots = avalDate.geAavailableDates(); 
Set keys = slots.keySet(); 
for (String date : keys) { 
    // Here date is 2017-12-31 
    AvailableTimeSlot avt = slots.get(date); 

    // You can check if except available or not 
    if (avt.getExcept() != null) { 
    // Read array list of except for that day 
    ArrayList<ExceptTimeSlots> except = avt.getExceps(); 
    // Do whatever you want to do with array 
    } else { 
    // you can read from and to directlly 
    avt.getFrom(); 
    avt.getTo(); 
    } 
} 
+0

これは改造で動作しますか? –

+0

いつものように..それは動作します...その前にゲッターセッターを3つのpojoに追加してください。私はコードに追加しなかった。 –

3

1)あそこにあなたの応答を貼り付けhttp://www.jsonschema2pojo.org/

2)に移動し、パッケージとクラス名

3を入力してください)

4 Javaなどのターゲット言語を選択してください)ソース・タイプas Json

5)注釈styルGsonとして

6)私はこれがちょうど明確であることを理解、

+2

私はすでに、それは私が開発を始めてから、必要であれば、あなたも –

+0

仲間のために適切なPOJOを生成しませんでした試みたあなたバックエンドからのJSONレスポンスは、あなたがこのリンクは質問に答えるかもしれないが、ここでは答えの重要な部分を含めるとのリンクを提供した方がよい代わりM.SaadLakhan @ページ –

+0

がなければならないことを使用しています私のJSON文字列 –

0

フェロー熱心ツーdownvote-ルーキー-SO-ユーザーをプレビュー

7)[コピー]をクリックし、アプリのパッケージにこれらのクラスを貼り付けますしかし、私はそれをコメントすることはできないので、ここで私はあなたの下降票の祝福に行きます。

OPthis siteでこれらのオプションを選択します。 1)ターゲット言語 Javaの、
2)ソースタイプとして JSON
3)注釈スタイルとしてGson として

、次にtr yを使用してPOJOクラスを生成します。

関連する問題