public static Manifest manifestFromJSonObject(JSONObject parsedObject) {
    String versionStr = "";
    String guid = "";
    String urlRoot = "";

    Object tmp = parsedObject.get(ManifestConstants.VERSION);
    if (null != tmp) {
      versionStr = tmp.toString();
    }

    tmp = parsedObject.get(ManifestConstants.GUID);
    if (null != tmp) {
      guid = tmp.toString();
    }
    tmp = parsedObject.get(ManifestConstants.URLROOT);
    if (null != tmp) {
      urlRoot = tmp.toString();
    }

    Manifest toReturn = new Manifest(Util.intFromStringWithoutThrow(versionStr), guid, urlRoot);

    tmp = parsedObject.get(ManifestConstants.ENTRIES);
    if (tmp instanceof JSONArray) {
      JSONArray entries = (JSONArray) tmp;
      for (Object tmpEntry : entries) {
        if (tmpEntry instanceof JSONObject) {
          Entry e = entryFromJsonObject((JSONObject) tmpEntry);
          if (null != e) {
            toReturn.addEntry(e);
          }
        }
      }
    }
    return toReturn;
  }