2016-05-03 3 views
1

Ich habe ein folgendes JSON-Format erstellen: -Wie verschachtelte dynamische JSON-Objekt pojo Klasse in android

{"status": "ok","response": { 
    "results": { 
     "C9DC8215200A9180BD4F4F15097CEB0AC6F4DB6C57FDB75F": { 
     "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F": { 
      "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2": [ 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "0D9F4046200A8059BFB6FF7AF0BA54045D73A13C70E14D7A", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "7CFD035E200A4641A670DF08EAF9870A03986F7C350172FA", 
       "comment": null, 
       "created_on": "1455099295", 
       "applied_on": "1456099199", 
       "created_by": "D185D3E3200058716235DFECB7C58C0604923B9CEBE14382", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "7CFD035E200A4641A670DF08EAF9870A03986F7C350172FA", 
       "name": "Got it", 
       "value": "1.00", 
       "colour": "007878", 
       "is_editable": true, 
       "created_on": "1454341373", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "3", 
       "is_target": false, 
       "has_events": null 
       } 
      }, 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "EAF8D3DA200A8F7E32C81FB1ACA9920BC26B9E8C40433A23", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "comment": null, 
       "created_on": "1454500600", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "name": "All Good", 
       "value": "1.00", 
       "colour": "5bce40", 
       "is_editable": true, 
       "created_on": "1454054299", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "2", 
       "is_target": true, 
       "has_events": null 
       } 
      }, 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "EAEDD3CF200A8B8BABB87FBEDC379A060622053CEB33CAD2", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "comment": null, 
       "created_on": "1454500589", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "name": "All Good", 
       "value": "1.00", 
       "colour": "5bce40", 
       "is_editable": true, 
       "created_on": "1454054299", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "2", 
       "is_target": true, 
       "has_events": null 
       } 
      }, 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "1D781304200A82AEE6112F19456F6F0C8412131C97CF0226", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "comment": null, 
       "created_on": "1454054776", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "name": "Problem", 
       "value": "0.00", 
       "colour": "ff0000", 
       "is_editable": true, 
       "created_on": "1453107752", 
       "created_by": null, 
       "display_order": "1", 
       "is_target": false, 
       "has_events": null 
       } 
      } 
      ], 
      "ED4FE4222008FE269BEDDFDBC1ED2D0CA985303C2E22EA80": [ 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "EB1C10DC200A8544DB986F4C9ECCDA0A959D13DCCBFE4CE2", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE4222008FE269BEDDFDBC1ED2D0CA985303C2E22EA80", 
       "item_uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "comment": null, 
       "created_on": "1454500636", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "name": "Problem", 
       "value": "0.00", 
       "colour": "ff0000", 
       "is_editable": true, 
       "created_on": "1453107752", 
       "created_by": null, 
       "display_order": "1", 
       "is_target": false, 
       "has_events": null 
       } 
      } 
      ], 
      "ED4FE36D2008F0BA0E740F8A4733B80CF55C145C5B8A417B": [ 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "93C0D9D5200A88889B023F814473CD016DEB0EFCC7094543", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE36D2008F0BA0E740F8A4733B80CF55C145C5B8A417B", 
       "item_uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "comment": null, 
       "created_on": "1454478272", 
       "applied_on": "1456099199", 
       "created_by": "D185D3E3200058716235DFECB7C58C0604923B9CEBE14382", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "name": "Problem", 
       "value": "0.00", 
       "colour": "ff0000", 
       "is_editable": true, 
       "created_on": "1453107752", 
       "created_by": null, 
       "display_order": "1", 
       "is_target": false, 
       "has_events": null 
       } 
      }, 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "1D7C4909200A86C9E7641FFDD9CA1F0FA0A4B73CA232DED1", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE36D2008F0BA0E740F8A4733B80CF55C145C5B8A417B", 
       "item_uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "comment": null, 
       "created_on": "1454054780", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "name": "All Good", 
       "value": "1.00", 
       "colour": "5bce40", 
       "is_editable": true, 
       "created_on": "1454054299", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "2", 
       "is_target": true, 
       "has_events": null 
       } 
      } 
      ] 
     }, 
     "EDF8AB8320005CF46FD85FB2057DC1040B6045FC145037CC": { 
      "ED4FE4222008FE269BEDDFDBC1ED2D0CA985303C2E22EA80": [ 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "EB487A39200A80C54701FFA72E4CF10362D20BDC75603A6F", 
       "user_uuid": "EDF8AB8320005CF46FD85FB2057DC1040B6045FC145037CC", 
       "learning_objective_uuid": "ED4FE4222008FE269BEDDFDBC1ED2D0CA985303C2E22EA80", 
       "item_uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "comment": null, 
       "created_on": "1454500680", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "name": "All Good", 
       "value": "1.00", 
       "colour": "5bce40", 
       "is_editable": true, 
       "created_on": "1454054299", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "2", 
       "is_target": true, 
       "has_events": null 
       } 
      } 
      ], 
      "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2": [ 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "EAF8D47D200A873635717F745065A1096F5D638C8CBBF34A", 
       "user_uuid": "EDF8AB8320005CF46FD85FB2057DC1040B6045FC145037CC", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "comment": null, 
       "created_on": "1454500600", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "name": "All Good", 
       "value": "1.00", 
       "colour": "5bce40", 
       "is_editable": true, 
       "created_on": "1454054299", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "2", 
       "is_target": true, 
       "has_events": null 
       } 
      }, 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "EAEDD466200A8E8AB7676F73A874CE079D5F6D7C885CFEEB", 
       "user_uuid": "EDF8AB8320005CF46FD85FB2057DC1040B6045FC145037CC", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "comment": null, 
       "created_on": "1454500589", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "name": "All Good", 
       "value": "1.00", 
       "colour": "5bce40", 
       "is_editable": true, 
       "created_on": "1454054299", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "2", 
       "is_target": true, 
       "has_events": null 
       } 
      }, 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "1D7813A2200A80CD64CBDF6782AC3B050F01DFFCE04B6D11", 
       "user_uuid": "EDF8AB8320005CF46FD85FB2057DC1040B6045FC145037CC", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "comment": null, 
       "created_on": "1454054776", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "name": "Problem", 
       "value": "0.00", 
       "colour": "ff0000", 
       "is_editable": true, 
       "created_on": "1453107752", 
       "created_by": null, 
       "display_order": "1", 
       "is_target": false, 
       "has_events": null 
       } 
      } 
      ], 
      "ED4FE36D2008F0BA0E740F8A4733B80CF55C145C5B8A417B": [ 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "1D7C49A3200A86022A217F06045A8C0F8E19871CA03CA051", 
       "user_uuid": "EDF8AB8320005CF46FD85FB2057DC1040B6045FC145037CC", 
       "learning_objective_uuid": "ED4FE36D2008F0BA0E740F8A4733B80CF55C145C5B8A417B", 
       "item_uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "comment": null, 
       "created_on": "1454054780", 
       "applied_on": "1456099199", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "name": "All Good", 
       "value": "1.00", 
       "colour": "5bce40", 
       "is_editable": true, 
       "created_on": "1454054299", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "2", 
       "is_target": true, 
       "has_events": null 
       } 
      } 
      ] 
     } 

     }, 
     "C9DC824B200A9C418704CF994FD5F40662FC79ECEFA00551": { 
     "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F": { 
      "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2": [ 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "A8A868D9200A8830B097EF898409A40D9ADD24EC9988F744", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "comment": null, 
       "created_on": "1458284712", 
       "applied_on": "1460329199", 
       "created_by": "D185D3E3200058716235DFECB7C58C0604923B9CEBE14382", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "54BD732E200A4DD528CD9F420735D60D9B9CE18C411E0E51", 
       "name": "Problem", 
       "value": "0.00", 
       "colour": "ff0000", 
       "is_editable": true, 
       "created_on": "1453107752", 
       "created_by": null, 
       "display_order": "1", 
       "is_target": false, 
       "has_events": null 
       } 
      }, 
      { 
       "type": "student_tracker_status_type", 
       "event": { 
       "uuid": "9477559E200A84B71BA45F446D73CD053F7234DC097E5D47", 
       "user_uuid": "EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F", 
       "learning_objective_uuid": "ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2", 
       "item_uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "comment": null, 
       "created_on": "1458279543", 
       "applied_on": "1460329199", 
       "created_by": "D185D3E3200058716235DFECB7C58C0604923B9CEBE14382", 
       "updated_on": null, 
       "updated_by": null 
       }, 
       "item": { 
       "uuid": "1B9BCDD0200A479A2870AF4FA9B80C0583FF0C8C740733D4", 
       "name": "All Good", 
       "value": "1.00", 
       "colour": "5bce40", 
       "is_editable": true, 
       "created_on": "1454054299", 
       "created_by": "AEBB466920005BA2486F0FC9F9AAC10FDF77900C90146CF6", 
       "display_order": "2", 
       "is_target": true, 
       "has_events": null 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 

} 

In den obigen Json, ich habe mehrere dynamischen Json Objektschlüssel, die Änderung sind für unterschiedliche Reaktionen. Ich benutze Retrofit, um Json zu parsen. Bitte helfen Sie mir, wie Klasse für über JSON erstellen. Danke !!

+1

machen Sie das POJO von hier. http://www.jsonschema2pojo.org/ –

+0

Das wird nicht funktionieren, weil die Schlüssel dynamisch sind. –

+0

Kopieren Sie Ihre JSON und Vergangenheit in jsonschema2pojo.org und klicken Sie auf Button Vorschau –

Antwort

2

Normalerweise können JSON-Parser wie Gson dynamische Schlüssel in JSON-Objekten analysieren, die das Objekt in eine Java-Map konvertieren.

In Ihrem Fall das JSON-Objekt ist ziemlich extravagant und die resultierende POJO (n) so etwas wie sein könnte:

private class Wrapper { 
    String status; 
    Response response; 
} 

private class Response { 
    Map<String, Map<String, Map<String, List<Inner>>>> results; 
} 

private class Inner { 
    String type; 
    ... all other stuff 
} 

Aber: Map<String, Map<String, Map<String, List<Inner>>>> nicht sehr gut zu mir schauen.

es aus mit Gson Der Versuch, dachte, es gut zu funktionieren scheint: MainActivity: Type: student_tracker_status_type

Wrapper wrapper = new Gson().fromJson(json, Wrapper.class); 

    Log.e(TAG, "Type: " + wrapper.response.results 
     .get("C9DC8215200A9180BD4F4F15097CEB0AC6F4DB6C57FDB75F") 
     .get("EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F") 
     .get("ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2").get(0).type); 

Logs.

Hoffe, das hilft.

+0

Danke für die Antwort. Bitte schlagen Sie mir vor, wie Sie die Schlüssel und Werte aus der obigen Karte herausholen können. Ich benutze die folgende Karte. Map >>> –

+0

was genau meinst du? 'Map' s haben 'keySet()' und 'values ​​()' Methoden, um eine Liste ihrer Schlüssel/Werte zu extrahieren. – Onheiron