Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Creative commons Attribution-NonCommercial license. http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
  
  package base.json;
  
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
 
 public class Json {
 
 	private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");
 	private static final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
 
 	public static String toDate(Date date) {
 		return .format(date);
 	}
 
 	public static String toDateTime(Date date) {
 		return .format(date);
 	}
 
 	public static Date toDateTime(String datethrows IOException {
 		try {
 			return .parse(date);
 		} catch (ParseException e) {
 			throw new IOException("Invalid date format: "+date);
 		}
 	}
 
 	public static Date toDate(String datethrows IOException {
 		try {
 			return .parse(date);
 		} catch (ParseException e) {
 			throw new IOException("Invalid date format: "+date);
 		}
 	}
 
 	public static String escape(String string) {
 		if(string == null) {
 			return null;
 		}
 		return string.replaceAll("\\\\""\\\\\\\\").replaceAll("\"""\\\\\"").replaceAll("\r""\\\\r").replaceAll("\n""\\\\n");
 	}
 
 	@SuppressWarnings("unchecked")
 	public static String toJson(Map<StringObjectattributes) {
 		StringBuffer string = new StringBuffer();
 		string.append("{");
 		for(String key : attributes.keySet()) {
 			if(string.length() > 1) {
 				string.append(", ");
 			}
 			if(attributes.get(key) == null) {
 				string.append("\""+key+"\":null");
 				continue;
 			}
 			if(attributes.get(keyinstanceof Long) {
 				string.append("\""+key+"\":"+String.valueOf((Long)attributes.get(key))+"");
 				continue;
 			}
 			if(attributes.get(keyinstanceof BigDecimal) {
 				string.append("\""+key+"\":"+String.valueOf((BigDecimal)attributes.get(key))+"");
 				continue;
 			}
 			if(attributes.get(keyinstanceof QueryResult) {
 				string.append("\""+key+"\":"+((QueryResult)attributes.get(key)).toJson()+"");
 				continue;
 			}
 			if(attributes.get(keyinstanceof Integer) {
 				string.append("\""+key+"\":"+String.valueOf((Integer)attributes.get(key))+"");
 				continue;
 			}
 			if(attributes.get(keyinstanceof String) {
 				string.append("\""+key+"\":\""+escape((String)attributes.get(key))+"\"");
 				continue;
 			}
 			if(attributes.get(keyinstanceof Date) {
 				string.append("\""+key+"\":\""+.format((Date)attributes.get(key))+"\"");
 				continue;
 			}
 			if(attributes.get(keyinstanceof Timestamp) {
 				string.append("\""+key+"\":\""+.format((Timestamp)attributes.get(key))+"\"");
 				continue;
 			}
 			if(attributes.get(keyinstanceof Map<?, ?>) {
				string.append("\""+key+"\":"+toJson((Map<StringObject>)attributes.get(key))+"");
				continue;
			}
			if(attributes.get(keyinstanceof List<?>) {
				string.append("\""+key+"\":"+toJson((List<Object>)attributes.get(key))+"");
				continue;
			}
			if(attributes.get(keyinstanceof Boolean) {
				string.append("\""+key+"\":"+(((Boolean)attributes.get(key))?"true":"false")+"");
				continue;
			}
			if(attributes.get(keyinstanceof UUID) {
				string.append("\""+key+"\":\"" + attributes.get(key).toString() + "\"");
				continue;
			}
			throw new RuntimeException("Invalid JSON structure. Object of unknown type: " + attributes.get(key).getClass().getName());
		}
		string.append("}");
		return string.toString();
	}
	@SuppressWarnings("unchecked")
	public static String toJson(List<Objectlist) {
		StringBuffer string = new StringBuffer();
		string.append("[");
		for(Object item : list) {
			if(string.length() > 1) {
				string.append(", ");
			}
			if(item == null) {
				string.append("null");
				continue;
			}
			if(item instanceof String) {
				string.append("\""+escape((String)item)+"\"");
				continue;
			}
			if(item instanceof QueryResult) {
				string.append(((QueryResult)item).toJson());
				continue;
			}
			if(item instanceof Date) {
				string.append("\""+.format((Date)item)+"\"");
				continue;
			}
			if(item instanceof Map<?, ?>) {
				string.append(toJson((Map<StringObject>)item));
				continue;
			}
			if(item instanceof List<?>) {
				string.append(toJson((List<Object>)item));
				continue;
			}
			if(item instanceof Long) {
				string.append(String.valueOf((Long)item));
				continue;
			}
			if(item instanceof BigDecimal) {
				string.append(String.valueOf((BigDecimal)item));
				continue;
			}
			if(item instanceof Integer) {
				string.append(String.valueOf((Integer)item));
				continue;
			}
			if(item instanceof Boolean) {
				string.append((((Boolean)item)?"true":"false"));
				continue;
			}
			if(item instanceof Timestamp) {
				continue;
			}
			throw new RuntimeException("Invalid JSON structure. Dont know how to interpret: " + item.getClass().getName());
		}
		string.append("]");
		return string.toString();
	}
	@SuppressWarnings("unchecked")
	public static String toJson(Object[] list) {
		StringBuffer string = new StringBuffer();
		string.append("[");
		for(Object item : list) {
			if(string.length() > 1) {
				string.append(", ");
			}
			if(item == null) {
				string.append("null");
				continue;
			}
			if(item instanceof String) {
				string.append("\""+escape((String)item)+"\"");
				continue;
			}
			if(item instanceof QueryResult) {
				string.append(((QueryResult)item).toJson());
				continue;
			}
			if(item instanceof Date) {
				string.append("\""+.format((Date)item)+"\"");
				continue;
			}
			if(item instanceof Map<?, ?>) {
				string.append(toJson((Map<StringObject>)item));
				continue;
			}
			if(item instanceof List<?>) {
				string.append(toJson((List<Object>)item));
				continue;
			}
			if(item instanceof Long) {
				string.append(String.valueOf((Long)item));
				continue;
			}
			if(item instanceof BigDecimal) {
				string.append(String.valueOf((BigDecimal)item));
				continue;
			}
			if(item instanceof Integer) {
				string.append(String.valueOf((Integer)item));
				continue;
			}
			if(item instanceof Boolean) {
				string.append((((Boolean)item)?"true":"false"));
				continue;
			}
			if(item instanceof Timestamp) {
				continue;
			}
			throw new RuntimeException("Invalid JSON structure. Dont know how to interpret: " + item.getClass().getName());
		}
		string.append("]");
		return string.toString();
	}
New to GrepCode? Check out our FAQ X