Json 사용자 정의 함수의 간단한 실례
/*
* Created on Nov 4, 2016
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.suning.commerce.util;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
/**
* @author nicholas tse
*
* TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
*/
public class JsonUtils {
/**
*
* @param array
* @return
*/
private static String array2Json(Object[] array) {
if (array.length == 0)
return "[]";
int i = array.length;
StringBuffer sb = new StringBuffer(i << 4);
sb.append('[');
for (int j = 0; j < i; j++) {
Object o = array[j];
sb.append(toJson(o));
sb.append(',');
}
// ',' ']':
sb.setCharAt(sb.length() - 1, ']');
return sb.toString();
}
private static String string2Json(String s) {
StringBuffer sb = new StringBuffer(s.length() + 20);
sb.append('\"');
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case '\"':
sb.append("\\\"");
break;
case '\\':
sb.append("\\\\");
break;
case '/':
sb.append("\\/");
break;
case '\b':
sb.append("\\b");
break;
case '\f':
sb.append("\\f");
break;
case '
':
sb.append("\
");
break;
case '\r':
sb.append("\\r");
break;
case '\t':
sb.append("\\t");
break;
default:
sb.append(c);
}
}
sb.append('\"');
return sb.toString();
}
public static String toJson(Object o) {
if (o == null) {
return "null";
} else if (o instanceof String) {
return string2Json((String) o);
} else if ((o instanceof Boolean) || (o instanceof Number)) {
return o.toString();
} else if ((o instanceof Date) || (o instanceof Time)||o instanceof Timestamp) {
return o.toString();
} else if (o instanceof java.util.Date) {
return DateUtil.formatDate((java.util.Date)o,"yyyy-MM-dd HH:mm:ss");
} else if (o instanceof Map) {
return map2Json((Map) o);
} else if (o instanceof Object[]) {
return array2Json((Object[]) o);
} else if (o instanceof Collection) {
return array2Json(((Collection) o).toArray());
} else {
try {
Map describe = BeanUtils.describe(o);
return map2Json(describe);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
throw new RuntimeException("Unsupported type: " + o.getClass().getName());
}
/**
*
* @param map
* @return
*/
private static String map2Json(Map map) {
if (map.isEmpty())
return "{}";
StringBuffer sb = new StringBuffer(map.size() << 4);
sb.append('{');
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
Object value = map.get(key);
sb.append('\"');
sb.append(key);
sb.append('\"');
sb.append(':');
sb.append(toJson(value));
sb.append(',');
}
// ',' '}':
sb.setCharAt(sb.length() - 1, '}');
return sb.toString();
}
}
지금까지 여러분에게 제시된 Json 사용자 정의 사용 함수의 간단한 실례 전부입니다. 많은 응원 부탁드립니다~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue 어셈블리에서 여러 번 사용자 정의 매개변수 작업 재사용추가 정보: VUE 구성 요소(슬롯 slot 및 재사용 가능 구성 요소) 하위 구성 요소의 일부 내용이 부모 구성 요소를 통해 DOM을 전달할 때 부모 구성 요소props 전가의 비교적 좌절된 문법을 사용하지 않아도...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.