public static Word convertJSONObjectToWordWithMeanings(JSONObject wordJsonObject)
      throws JSONException, ParseException {
    Word word = null;
    JSONArray arrayMeaningJSON = null;
    List<Meaning> meanings = null;

    if (wordJsonObject != null) {
      Log.v(TAG, "wordJsonObject->" + wordJsonObject.toString());
      String idWord = wordJsonObject.getString("id");
      String creationDateStr = wordJsonObject.getString("creationDate");
      String creationTimeStr = wordJsonObject.getString("creationTime");
      String modificationDateStr = wordJsonObject.getString("modificationDate");
      String modificationTimeStr = wordJsonObject.getString("modificationTime");
      String statusWord = wordJsonObject.getString("status");
      String textWord = wordJsonObject.getString("text");

      Date creationDateWord =
          GeneralUtils.convertStringToDateSQL(creationDateStr, ConstantsFormat.FORMAT_DATE_1);
      Time creationTimeWord = GeneralUtils.convertStringToTimeSQL(creationTimeStr);
      Date modificationDateWord =
          GeneralUtils.convertStringToDateSQL(modificationDateStr, ConstantsFormat.FORMAT_DATE_1);
      Time modificationTimeWord = GeneralUtils.convertStringToTimeSQL(modificationTimeStr);

      // Meanings
      String meaningsWordStr = wordJsonObject.getString("meanings");

      if (meaningsWordStr.equals("null")) {
        meanings = new ArrayList<Meaning>();
      } else if (meaningsWordStr.isEmpty()) {
        meanings = new ArrayList<Meaning>();
      } else if (meaningsWordStr == null) {
        meanings = new ArrayList<Meaning>();
      } else if (meaningsWordStr.equals("[]")) {
        meanings = new ArrayList<Meaning>();
      } else {
        arrayMeaningJSON = new JSONArray(meaningsWordStr);
        meanings = ConvertsTypeMeaning.convertJSONArrayToArrayListMeanings(arrayMeaningJSON);
      }

      word = new Word();
      word.setId(idWord);
      word.setCreationDate(creationDateWord);
      word.setCreationTime(creationTimeWord);
      word.setModificationDate(modificationDateWord);
      word.setModificationTime(modificationTimeWord);
      word.setStatus(statusWord);
      word.setText(textWord);
      word.setMeanings(meanings);

    } else {
      Log.e(TAG, "JSONObject is null");
    }

    return word;
  }
  public static JSONArray convertListMeaningsToJSONArray(List<Meaning> meanings)
      throws JSONException, ParseException {

    JSONArray meaningsArrayJson = null;

    if (meanings != null) {
      meaningsArrayJson = new JSONArray();
      for (Meaning meaning : meanings) {
        JSONObject meaningToJSONObject =
            ConvertsTypeMeaning.convertMeaningWithWordToJSONObject(meaning);
        meaningsArrayJson.put(meaningToJSONObject);
      }
    } else {
      Log.e(TAG, "List meanings is null");
    }

    return meaningsArrayJson;
  }
  public static List<Meaning> convertJSONArrayToArrayListMeanings(JSONArray arrayMeaningJSON)
      throws JSONException, ParseException {
    ArrayList<Meaning> meanings = null;

    if (arrayMeaningJSON != null) {
      int lengthJSONArray = arrayMeaningJSON.length();

      if (lengthJSONArray > 0) {
        meanings = new ArrayList<Meaning>();
      }

      for (int i = 0; i < lengthJSONArray; i++) {
        JSONObject jsonObject = arrayMeaningJSON.getJSONObject(i);

        Meaning meaningi = ConvertsTypeMeaning.convertJSONObjectToMeaningWithOutWord(jsonObject);
        meanings.add(meaningi);
      }
    }

    return meanings;
  }
  public static String convertArrayListMeaningToStringJSON(ArrayList<Meaning> meaningsSearchMeaning)
      throws ParseException, JSONException {
    String listMeaningStr = null;
    JSONArray arrayMeaning = null;

    if (meaningsSearchMeaning != null) {
      arrayMeaning = new JSONArray();
      for (Meaning meaning : meaningsSearchMeaning) {
        JSONObject meaningJSON = ConvertsTypeMeaning.convertMeaningWithOutWordToJSONObject(meaning);
        arrayMeaning.put(meaningJSON);
      }
    } else {
      Log.e("Error.", "meaningsSearchMeaning is null");
    }

    if (arrayMeaning != null) {
      listMeaningStr = arrayMeaning.toString();
    } else {
      Log.e(TAG, "arrayMeaning is null");
    }

    return listMeaningStr;
  }