Skip to content

hetian9288/idea_dart_json_format

 
 

Repository files navigation

update ver 1.4

fix bug: error caused by empty array,

solution: ignore empty array, or regard it as dynamic type

update ver 1.3

now you are able to generate comments

update ver 1.2

name root class after filename

update ver 1.1

auto dispose jframe when job done

how to use

1. download jar

https://plugins.jetbrains.com/plugin/11551-dart-json-format

jar

2. install -> install plugin from disk...

install

3. create a new dart file, then press command + N (mac os)

file

4. choose "dart json format", then put your json in

json:

{
  "code": "2000",
  "data": {
    "expressAddress": {
      "address": "控江路1209",
      "createdDatetime": "2015-12-09 19:36:38",
      "receiver": "张**",
      "receiverCellphone": "1502379****",
      "sid": "c25c1954ca204dee8fc18f51bcc71a3e",
      "sortNumber": 1,
      "title": "先生",
      "type": "EXPRESS",
      "userSid": "a19cf6e3586143d283dd4128c456bfaf"
    },
    "facetofaceAddress": {
      "address": "",
      "receiver": "罗",
      "receiverCellphone": "1388345****",
      "sid": "001190e19e754001b53701d0aa81bfe0",
      "sortNumber": 1,
      "title": "女士",
      "type": "FACETOFACE",
      "userSid": "a19cf6e3586143d283dd4128c456bfaf"
    },
    "order": {
      "bidding": 2300,
      "brokerAvatar": "broker/getAvatar?key=avatar/b82378ccaccb403c9d8420274372c904",
      "brokerCellphone": "1347282****",
      "brokerDealNum": 15,
      "brokerName": "王**",
      "brokerSid": "b82378ccaccb403c9d8420274372c904",
      "brokerStars": 4.5,
      "code": "1512151307270113",
      "cover": "show/getPoster?key=52f30bbce4ef4122919cbc95c2f01c36/52f30bbce4ef4122919cbc95c2f01c36",
      "createdDatetime": "2015-12-15 13:07:28",
      "deliveryAddressSid": "c25c1954ca204dee8fc18f51bcc71a3e",
      "deliveryFee": 0,
      "evaluateStarts": 0,
      "isDelete": false,
      "isSequential": false,
      "orderStatus": "CLOSED",
      "orderStatusArray": [{
        "operateDatetime": "2015-12-15 13:07:28",
        "operateUserSid": "b82378ccaccb403c9d8420274372c904",
        "operateUsername": "王**",
        "orderSid": "21bc3cc65e9e47af952c1f4f1f0fd85a",
        "orderType": "1",
        "sid": "04940ed81540466ea4408f79989a5d54",
        "state": "TAKING"
      }],
      "orderStatusDesp": "",
      "orderType": "1",
      "payType": "",
      "postTicketSid": "65cc6d54300349e984134ecd0faf3ede",
      "receiveDatetime": "2015-12-15 13:07:28",
      "receiver": "张**",
      "receiverAddress": "控江路1209",
      "receiverCellphone": "1502379****",
      "receiverTitle": "先生",
      "remark": "",
      "requestDatetime": "2015-12-15 13:07:28",
      "showName": "Love Radio 品冠 现在你在哪里 巡回演唱会上海站",
      "showSchedule": "2016-01-09 19:30:00",
      "showScheduleSid": "eecfd0657fb445a7a36abedc9b621c89",
      "showSid": "52f30bbce4ef4122919cbc95c2f01c36",
      "sid": "21bc3cc65e9e47af952c1f4f1f0fd85a",
      "stateDesp": "已关闭",
      "ticketPrice": 88000,
      "ticketQuantity": 1,
      "ticketSid": "c4583aa8a79a478e8e5cd14691028430",
      "totalPrice": 2300,
      "tradeType": "EXPRESS",
      "userCellphone": "1502379****",
      "userLeaveMessage": "",
      "userSid": "a19cf6e3586143d283dd4128c456bfaf",
      "venueAddress": "上海市长宁区武夷路777号",
      "venueName": "上海国际体操中心"
    }
  },
  "extraData": {},
  "message": "",
  "success": true,
  "intList": [0, 1, 2, 3],
  "boolList": [true, false, true, true],
  "doubleList": [0.0, 1.1, 2.2, 3.3],
  "emptyList": [],
  "nullList": [null],
  "nullObj": null
}

plugin

5. click "ok", then close plugin, and paste the code to your file

result codes

class Temp {

  /**
   * code : "2000"
   * message : ""
   * success : true
   * nullObj : null
   * data : {"expressAddress":{"address":"控江路1209","createdDatetime":"2015-12-09 19:36:38","receiver":"张**","receiverCellphone":"1502379****","sid":"c25c1954ca204dee8fc18f51bcc71a3e","sortNumber":1,"title":"先生","type":"EXPRESS","userSid":"a19cf6e3586143d283dd4128c456bfaf"},"facetofaceAddress":{"address":"","receiver":"罗","receiverCellphone":"1388345****","sid":"001190e19e754001b53701d0aa81bfe0","sortNumber":1,"title":"女士","type":"FACETOFACE","userSid":"a19cf6e3586143d283dd4128c456bfaf"},"order":{"bidding":2300,"brokerAvatar":"broker/getAvatar?key=avatar/b82378ccaccb403c9d8420274372c904","brokerCellphone":"1347282****","brokerDealNum":15,"brokerName":"王**","brokerSid":"b82378ccaccb403c9d8420274372c904","brokerStars":4.5,"code":"1512151307270113","cover":"show/getPoster?key=52f30bbce4ef4122919cbc95c2f01c36/52f30bbce4ef4122919cbc95c2f01c36","createdDatetime":"2015-12-15 13:07:28","deliveryAddressSid":"c25c1954ca204dee8fc18f51bcc71a3e","deliveryFee":0,"evaluateStarts":0,"isDelete":false,"isSequential":false,"orderStatus":"CLOSED","orderStatusArray":[{"operateDatetime":"2015-12-15 13:07:28","operateUserSid":"b82378ccaccb403c9d8420274372c904","operateUsername":"王**","orderSid":"21bc3cc65e9e47af952c1f4f1f0fd85a","orderType":"1","sid":"04940ed81540466ea4408f79989a5d54","state":"TAKING"}],"orderStatusDesp":"","orderType":"1","payType":"","postTicketSid":"65cc6d54300349e984134ecd0faf3ede","receiveDatetime":"2015-12-15 13:07:28","receiver":"张**","receiverAddress":"控江路1209","receiverCellphone":"1502379****","receiverTitle":"先生","remark":"","requestDatetime":"2015-12-15 13:07:28","showName":"Love Radio 品冠 现在你在哪里 巡回演唱会上海站","showSchedule":"2016-01-09 19:30:00","showScheduleSid":"eecfd0657fb445a7a36abedc9b621c89","showSid":"52f30bbce4ef4122919cbc95c2f01c36","sid":"21bc3cc65e9e47af952c1f4f1f0fd85a","stateDesp":"已关闭","ticketPrice":88000,"ticketQuantity":1,"ticketSid":"c4583aa8a79a478e8e5cd14691028430","totalPrice":2300,"tradeType":"EXPRESS","userCellphone":"1502379****","userLeaveMessage":"","userSid":"a19cf6e3586143d283dd4128c456bfaf","venueAddress":"上海市长宁区武夷路777号","venueName":"上海国际体操中心"}}
   * extraData : {}
   * boolList : [true,false,true,true]
   * doubleList : [0.0,1.1,2.2,3.3]
   * intList : [0,1,2,3]
   * emptyList : []
   * nullList : [null]
   */

  String code;
  String message;
  bool success;
  dynamic nullObj;
  DataBean data;
  ExtraDataBean extraData;
  List<bool> boolList;
  List<double> doubleList;
  List<int> intList;
  List<dynamic> emptyList;
  List<dynamic> nullList;

  static Temp fromMap(Map<String, dynamic> map) {
    Temp temp = new Temp();
    temp.code = map['code'];
    temp.message = map['message'];
    temp.success = map['success'];
    temp.nullObj = map['nullObj'];
    temp.emptyList = map['emptyList'];
    temp.nullList = map['nullList'];
    temp.data = DataBean.fromMap(map['data']);
    temp.extraData = ExtraDataBean.fromMap(map['extraData']);

    List<dynamic> dynamicList0 = map['boolList'];
    temp.boolList = new List();
    temp.boolList.addAll(dynamicList0.map((o) => o.toString() == 'true'));

    List<dynamic> dynamicList1 = map['doubleList'];
    temp.doubleList = new List();
    temp.doubleList.addAll(dynamicList1.map((o) => double.parse(o.toString())));

    List<dynamic> dynamicList2 = map['intList'];
    temp.intList = new List();
    temp.intList.addAll(dynamicList2.map((o) => int.parse(o.toString())));

    return temp;
  }

  static List<Temp> fromMapList(dynamic mapList) {
    List<Temp> list = new List(mapList.length);
    for (int i = 0; i < mapList.length; i++) {
      list[i] = fromMap(mapList[i]);
    }
    return list;
  }

}

class DataBean {

  /**
   * expressAddress : {"address":"控江路1209","createdDatetime":"2015-12-09 19:36:38","receiver":"张**","receiverCellphone":"1502379****","sid":"c25c1954ca204dee8fc18f51bcc71a3e","sortNumber":1,"title":"先生","type":"EXPRESS","userSid":"a19cf6e3586143d283dd4128c456bfaf"}
   * facetofaceAddress : {"address":"","receiver":"罗","receiverCellphone":"1388345****","sid":"001190e19e754001b53701d0aa81bfe0","sortNumber":1,"title":"女士","type":"FACETOFACE","userSid":"a19cf6e3586143d283dd4128c456bfaf"}
   * order : {"bidding":2300,"brokerAvatar":"broker/getAvatar?key=avatar/b82378ccaccb403c9d8420274372c904","brokerCellphone":"1347282****","brokerDealNum":15,"brokerName":"王**","brokerSid":"b82378ccaccb403c9d8420274372c904","brokerStars":4.5,"code":"1512151307270113","cover":"show/getPoster?key=52f30bbce4ef4122919cbc95c2f01c36/52f30bbce4ef4122919cbc95c2f01c36","createdDatetime":"2015-12-15 13:07:28","deliveryAddressSid":"c25c1954ca204dee8fc18f51bcc71a3e","deliveryFee":0,"evaluateStarts":0,"isDelete":false,"isSequential":false,"orderStatus":"CLOSED","orderStatusArray":[{"operateDatetime":"2015-12-15 13:07:28","operateUserSid":"b82378ccaccb403c9d8420274372c904","operateUsername":"王**","orderSid":"21bc3cc65e9e47af952c1f4f1f0fd85a","orderType":"1","sid":"04940ed81540466ea4408f79989a5d54","state":"TAKING"}],"orderStatusDesp":"","orderType":"1","payType":"","postTicketSid":"65cc6d54300349e984134ecd0faf3ede","receiveDatetime":"2015-12-15 13:07:28","receiver":"张**","receiverAddress":"控江路1209","receiverCellphone":"1502379****","receiverTitle":"先生","remark":"","requestDatetime":"2015-12-15 13:07:28","showName":"Love Radio 品冠 现在你在哪里 巡回演唱会上海站","showSchedule":"2016-01-09 19:30:00","showScheduleSid":"eecfd0657fb445a7a36abedc9b621c89","showSid":"52f30bbce4ef4122919cbc95c2f01c36","sid":"21bc3cc65e9e47af952c1f4f1f0fd85a","stateDesp":"已关闭","ticketPrice":88000,"ticketQuantity":1,"ticketSid":"c4583aa8a79a478e8e5cd14691028430","totalPrice":2300,"tradeType":"EXPRESS","userCellphone":"1502379****","userLeaveMessage":"","userSid":"a19cf6e3586143d283dd4128c456bfaf","venueAddress":"上海市长宁区武夷路777号","venueName":"上海国际体操中心"}
   */

  ExpressAddressBean expressAddress;
  FacetofaceAddressBean facetofaceAddress;
  OrderBean order;

  static DataBean fromMap(Map<String, dynamic> map) {
    DataBean dataBean = new DataBean();
    dataBean.expressAddress = ExpressAddressBean.fromMap(map['expressAddress']);
    dataBean.facetofaceAddress = FacetofaceAddressBean.fromMap(map['facetofaceAddress']);
    dataBean.order = OrderBean.fromMap(map['order']);
    return dataBean;
  }

  static List<DataBean> fromMapList(dynamic mapList) {
    List<DataBean> list = new List(mapList.length);
    for (int i = 0; i < mapList.length; i++) {
      list[i] = fromMap(mapList[i]);
    }
    return list;
  }
}

class ExtraDataBean {

  static ExtraDataBean fromMap(Map<String, dynamic> map) {
    ExtraDataBean extraDataBean = new ExtraDataBean();
    return extraDataBean;
  }

  static List<ExtraDataBean> fromMapList(dynamic mapList) {
    List<ExtraDataBean> list = new List(mapList.length);
    for (int i = 0; i < mapList.length; i++) {
      list[i] = fromMap(mapList[i]);
    }
    return list;
  }
}

class ExpressAddressBean {

  /**
   * address : "控江路1209"
   * createdDatetime : "2015-12-09 19:36:38"
   * receiver : "张**"
   * receiverCellphone : "1502379****"
   * sid : "c25c1954ca204dee8fc18f51bcc71a3e"
   * title : "先生"
   * type : "EXPRESS"
   * userSid : "a19cf6e3586143d283dd4128c456bfaf"
   * sortNumber : 1
   */

  String address;
  String createdDatetime;
  String receiver;
  String receiverCellphone;
  String sid;
  String title;
  String type;
  String userSid;
  int sortNumber;

  static ExpressAddressBean fromMap(Map<String, dynamic> map) {
    ExpressAddressBean expressAddressBean = new ExpressAddressBean();
    expressAddressBean.address = map['address'];
    expressAddressBean.createdDatetime = map['createdDatetime'];
    expressAddressBean.receiver = map['receiver'];
    expressAddressBean.receiverCellphone = map['receiverCellphone'];
    expressAddressBean.sid = map['sid'];
    expressAddressBean.title = map['title'];
    expressAddressBean.type = map['type'];
    expressAddressBean.userSid = map['userSid'];
    expressAddressBean.sortNumber = map['sortNumber'];
    return expressAddressBean;
  }

  static List<ExpressAddressBean> fromMapList(dynamic mapList) {
    List<ExpressAddressBean> list = new List(mapList.length);
    for (int i = 0; i < mapList.length; i++) {
      list[i] = fromMap(mapList[i]);
    }
    return list;
  }
}

class FacetofaceAddressBean {

  /**
   * address : ""
   * receiver : "罗"
   * receiverCellphone : "1388345****"
   * sid : "001190e19e754001b53701d0aa81bfe0"
   * title : "女士"
   * type : "FACETOFACE"
   * userSid : "a19cf6e3586143d283dd4128c456bfaf"
   * sortNumber : 1
   */

  String address;
  String receiver;
  String receiverCellphone;
  String sid;
  String title;
  String type;
  String userSid;
  int sortNumber;

  static FacetofaceAddressBean fromMap(Map<String, dynamic> map) {
    FacetofaceAddressBean facetofaceAddressBean = new FacetofaceAddressBean();
    facetofaceAddressBean.address = map['address'];
    facetofaceAddressBean.receiver = map['receiver'];
    facetofaceAddressBean.receiverCellphone = map['receiverCellphone'];
    facetofaceAddressBean.sid = map['sid'];
    facetofaceAddressBean.title = map['title'];
    facetofaceAddressBean.type = map['type'];
    facetofaceAddressBean.userSid = map['userSid'];
    facetofaceAddressBean.sortNumber = map['sortNumber'];
    return facetofaceAddressBean;
  }

  static List<FacetofaceAddressBean> fromMapList(dynamic mapList) {
    List<FacetofaceAddressBean> list = new List(mapList.length);
    for (int i = 0; i < mapList.length; i++) {
      list[i] = fromMap(mapList[i]);
    }
    return list;
  }
}

class OrderBean {

  /**
   * brokerAvatar : "broker/getAvatar?key=avatar/b82378ccaccb403c9d8420274372c904"
   * brokerCellphone : "1347282****"
   * brokerName : "王**"
   * brokerSid : "b82378ccaccb403c9d8420274372c904"
   * code : "1512151307270113"
   * cover : "show/getPoster?key=52f30bbce4ef4122919cbc95c2f01c36/52f30bbce4ef4122919cbc95c2f01c36"
   * createdDatetime : "2015-12-15 13:07:28"
   * deliveryAddressSid : "c25c1954ca204dee8fc18f51bcc71a3e"
   * orderStatus : "CLOSED"
   * orderStatusDesp : ""
   * orderType : "1"
   * payType : ""
   * postTicketSid : "65cc6d54300349e984134ecd0faf3ede"
   * receiveDatetime : "2015-12-15 13:07:28"
   * receiver : "张**"
   * receiverAddress : "控江路1209"
   * receiverCellphone : "1502379****"
   * receiverTitle : "先生"
   * remark : ""
   * requestDatetime : "2015-12-15 13:07:28"
   * showName : "Love Radio 品冠 现在你在哪里 巡回演唱会上海站"
   * showSchedule : "2016-01-09 19:30:00"
   * showScheduleSid : "eecfd0657fb445a7a36abedc9b621c89"
   * showSid : "52f30bbce4ef4122919cbc95c2f01c36"
   * sid : "21bc3cc65e9e47af952c1f4f1f0fd85a"
   * stateDesp : "已关闭"
   * ticketSid : "c4583aa8a79a478e8e5cd14691028430"
   * tradeType : "EXPRESS"
   * userCellphone : "1502379****"
   * userLeaveMessage : ""
   * userSid : "a19cf6e3586143d283dd4128c456bfaf"
   * venueAddress : "上海市长宁区武夷路777号"
   * venueName : "上海国际体操中心"
   * isDelete : false
   * isSequential : false
   * brokerStars : 4.5
   * bidding : 2300
   * brokerDealNum : 15
   * deliveryFee : 0
   * evaluateStarts : 0
   * ticketPrice : 88000
   * ticketQuantity : 1
   * totalPrice : 2300
   * orderStatusArray : [{"operateDatetime":"2015-12-15 13:07:28","operateUserSid":"b82378ccaccb403c9d8420274372c904","operateUsername":"王**","orderSid":"21bc3cc65e9e47af952c1f4f1f0fd85a","orderType":"1","sid":"04940ed81540466ea4408f79989a5d54","state":"TAKING"}]
   */

  String brokerAvatar;
  String brokerCellphone;
  String brokerName;
  String brokerSid;
  String code;
  String cover;
  String createdDatetime;
  String deliveryAddressSid;
  String orderStatus;
  String orderStatusDesp;
  String orderType;
  String payType;
  String postTicketSid;
  String receiveDatetime;
  String receiver;
  String receiverAddress;
  String receiverCellphone;
  String receiverTitle;
  String remark;
  String requestDatetime;
  String showName;
  String showSchedule;
  String showScheduleSid;
  String showSid;
  String sid;
  String stateDesp;
  String ticketSid;
  String tradeType;
  String userCellphone;
  String userLeaveMessage;
  String userSid;
  String venueAddress;
  String venueName;
  bool isDelete;
  bool isSequential;
  double brokerStars;
  int bidding;
  int brokerDealNum;
  int deliveryFee;
  int evaluateStarts;
  int ticketPrice;
  int ticketQuantity;
  int totalPrice;
  List<OrderStatusArrayListBean> orderStatusArray;

  static OrderBean fromMap(Map<String, dynamic> map) {
    OrderBean orderBean = new OrderBean();
    orderBean.brokerAvatar = map['brokerAvatar'];
    orderBean.brokerCellphone = map['brokerCellphone'];
    orderBean.brokerName = map['brokerName'];
    orderBean.brokerSid = map['brokerSid'];
    orderBean.code = map['code'];
    orderBean.cover = map['cover'];
    orderBean.createdDatetime = map['createdDatetime'];
    orderBean.deliveryAddressSid = map['deliveryAddressSid'];
    orderBean.orderStatus = map['orderStatus'];
    orderBean.orderStatusDesp = map['orderStatusDesp'];
    orderBean.orderType = map['orderType'];
    orderBean.payType = map['payType'];
    orderBean.postTicketSid = map['postTicketSid'];
    orderBean.receiveDatetime = map['receiveDatetime'];
    orderBean.receiver = map['receiver'];
    orderBean.receiverAddress = map['receiverAddress'];
    orderBean.receiverCellphone = map['receiverCellphone'];
    orderBean.receiverTitle = map['receiverTitle'];
    orderBean.remark = map['remark'];
    orderBean.requestDatetime = map['requestDatetime'];
    orderBean.showName = map['showName'];
    orderBean.showSchedule = map['showSchedule'];
    orderBean.showScheduleSid = map['showScheduleSid'];
    orderBean.showSid = map['showSid'];
    orderBean.sid = map['sid'];
    orderBean.stateDesp = map['stateDesp'];
    orderBean.ticketSid = map['ticketSid'];
    orderBean.tradeType = map['tradeType'];
    orderBean.userCellphone = map['userCellphone'];
    orderBean.userLeaveMessage = map['userLeaveMessage'];
    orderBean.userSid = map['userSid'];
    orderBean.venueAddress = map['venueAddress'];
    orderBean.venueName = map['venueName'];
    orderBean.isDelete = map['isDelete'];
    orderBean.isSequential = map['isSequential'];
    orderBean.brokerStars = map['brokerStars'];
    orderBean.bidding = map['bidding'];
    orderBean.brokerDealNum = map['brokerDealNum'];
    orderBean.deliveryFee = map['deliveryFee'];
    orderBean.evaluateStarts = map['evaluateStarts'];
    orderBean.ticketPrice = map['ticketPrice'];
    orderBean.ticketQuantity = map['ticketQuantity'];
    orderBean.totalPrice = map['totalPrice'];
    orderBean.orderStatusArray = OrderStatusArrayListBean.fromMapList(map['orderStatusArray']);
    return orderBean;
  }

  static List<OrderBean> fromMapList(dynamic mapList) {
    List<OrderBean> list = new List(mapList.length);
    for (int i = 0; i < mapList.length; i++) {
      list[i] = fromMap(mapList[i]);
    }
    return list;
  }
}

class OrderStatusArrayListBean {

  /**
   * operateDatetime : "2015-12-15 13:07:28"
   * operateUserSid : "b82378ccaccb403c9d8420274372c904"
   * operateUsername : "王**"
   * orderSid : "21bc3cc65e9e47af952c1f4f1f0fd85a"
   * orderType : "1"
   * sid : "04940ed81540466ea4408f79989a5d54"
   * state : "TAKING"
   */

  String operateDatetime;
  String operateUserSid;
  String operateUsername;
  String orderSid;
  String orderType;
  String sid;
  String state;

  static OrderStatusArrayListBean fromMap(Map<String, dynamic> map) {
    OrderStatusArrayListBean orderStatusArrayListBean = new OrderStatusArrayListBean();
    orderStatusArrayListBean.operateDatetime = map['operateDatetime'];
    orderStatusArrayListBean.operateUserSid = map['operateUserSid'];
    orderStatusArrayListBean.operateUsername = map['operateUsername'];
    orderStatusArrayListBean.orderSid = map['orderSid'];
    orderStatusArrayListBean.orderType = map['orderType'];
    orderStatusArrayListBean.sid = map['sid'];
    orderStatusArrayListBean.state = map['state'];
    return orderStatusArrayListBean;
  }

  static List<OrderStatusArrayListBean> fromMapList(dynamic mapList) {
    List<OrderStatusArrayListBean> list = new List(mapList.length);
    for (int i = 0; i < mapList.length; i++) {
      list[i] = fromMap(mapList[i]);
    }
    return list;
  }
}

6. use classes in code

main() {
  var map = new JsonDecoder().convert(json);
  Temp temp = Temp.fromMap(map);
  print(temp.data.expressAddress.address);
}

it prints:

控江路1209

7. gif

gif

About

a plugin working in idea,Android Studio....to make json string to dart classes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 47.6%
  • Kotlin 36.0%
  • Java 16.2%
  • Shell 0.2%