java 반사 실현 javabean json 실례 코드
package com.ObjectToJson;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
public class ObjectToJson {
public static String ObjListToJson(ArrayList<?> list){
StringBuilder build=new StringBuilder();
//
Iterator<?> iterator=list.iterator();
build.append("[");
String separate="";
while(iterator.hasNext()){
build.append(separate);
//object json
String str=ObjToJson(iterator.next());
build.append(str);
separate=",";
}
build.append("]");
return build.toString();
}
@SuppressWarnings("unchecked")
public static String ObjToJson(Object obj){
StringBuilder build=new StringBuilder();
build.append("{");
@SuppressWarnings("rawtypes")
Class cla=null;
try {
//
cla=Class.forName(obj.getClass().getName());
} catch (ClassNotFoundException e) {
System.out.println(obj.getClass().toString().concat(" "));
e.printStackTrace();
return null;
}
StringBuffer methodname=new StringBuffer();
// java
Field[] fields=cla.getDeclaredFields();
String separate="";
for(Field temp:fields){
build.append(separate);
build.append("\"");
build.append(temp.getName());
build.append("\":");
methodname.append("get");
methodname.append(temp.getName().substring(0,1).toUpperCase());
methodname.append(temp.getName().substring(1));
build.append("\"");
Method method=null;
try {
// java get
method=cla.getMethod(methodname.toString());
} catch (NoSuchMethodException | SecurityException e) {
methodname.setLength(0);
e.printStackTrace();
}
try {
// get , 。
build.append(method.invoke(obj));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
build.append("\"");
methodname.setLength(0);
separate=",";
}
build.append("}");
return build.toString();
}
}
Test.java
package com.test;
import java.util.ArrayList;
import com.ObjectToJson.ObjectToJson;
public class Test {
public static void main(String[] args){
//
ArrayList<User> list=getlist();
//
String listjson=ObjectToJson.ObjListToJson((ArrayList<?>)list);
System.out.println("{\"data\":"+listjson+"}");
}
public static ArrayList<User> getlist(){
User user00=new User();
user00.setUserage("27");
user00.setUsername("smart");
user00.setUsersex("man");
User user01=new User();
user01.setUserage("27");
user01.setUsername("smart00");
user01.setUsersex("man");
ArrayList<User> list=new ArrayList<User>();
list.add(user00);
list.add(user01);
return list;
}
}
User.java
package com.test;
public class User {
private String username;
private String usersex;
private String userage;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsersex() {
return usersex;
}
public void setUsersex(String usersex) {
this.usersex = usersex;
}
public String getUserage() {
return userage;
}
public void setUserage(String userage) {
this.userage = userage;
}
}
테스트 결과
{"data":[{"username":"smart","usersex":"man","userage":"27"},{"username":"smart00","usersex":"man","userage":"27"}]}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 반사 및 동적 에이전트예를 들어 특정한 대상의 클래스 정의를 얻고, 클래스 성명의 속성과 방법을 얻고, 호출 방법이나 구조 대상을 사용하며, 심지어 실행할 때 클래스 정의를 수정할 수 있다. 2. 속성/방법을 얻을 때'Declared'가...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.