/**
* xml 优点:描述数据比较准确,缺点:数据量大
* json 优点:数据量小,
*
* json的序列化和反序列化
* json->java对象 反序列化
* java->json 序列化
* json的语法规则
*
*
*
* 单一对象
* {属性1:值1,属性2:值2}
*
* 数组对象 (重复对象)
* [{属性1:值1,属性2:值2},{属性1:值1,属性2:值2}]
* 数组不同对象
* {对象名1:{属性1:值1,属性2:值2},对象名2:{属性3:值3,属性4:值4}}
*
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// String str="{name:'张三',money:100}";
// String str="[{name:'张三',money:100},{name:'李四',money:200}]";
// String str="{stu:{stuname:'张三',stumoney:100},tea:{teaname:'李四',teamoney:200}}";
// {stu:{stuname:'张三',stumoney:100},stu:{stuname:'张三',stumoney:100},result:true}
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String p=request.getParameter("p");
System.out.println(p);
JAVA- json转换:
package com.genomics.core;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JSONObjectToBean {
/**
*
* @param obj
* @param c
* @return
*/
public static Object convert(JSONObject obj,Class<?> c){
Object returnObject=null;
try {
returnObject = c.newInstance();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
Field[] fields=c.getDeclaredFields();
for(Field f:fields){
try{
System.out.println(f.getName()+"-----------"+f.getType());
ReflectUtil.setValue(f, returnObject, new Object[]{LangUtil.formatObject(f.getType(), obj.getString(f.getName()))});
}catch(Exception e){
}
}
return returnObject;
}
public static List convertList(JSONArray array,Class<?> c){
List list =new ArrayList();
for(int i=0;i<array.size();i++){
Object returnObject=null;
try {
returnObject = c.newInstance();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
Field[] fields=c.getDeclaredFields();
JSONObject obj=(JSONObject)array.get(i);
for(Field f:fields){
try{
ReflectUtil.setValue(f, returnObject, new Object[]{LangUtil.formatObject(f.getType(), obj.getString(f.getName()))});
}catch(Exception e){
}
}
list.add(returnObject);
}
return list;
}
public static List convertList(JSONArray array,Class<?> c,boolean StringNull2Blank){
List list =new ArrayList();
for(int i=0;i<array.size();i++){
Object returnObject=null;
try {
returnObject = c.newInstance();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
Field[] fields=c.getDeclaredFields();
JSONObject obj=(JSONObject)array.get(i);
for(Field f:fields){
try{
ReflectUtil.setValue(f, returnObject, new Object[]{LangUtil.formatObject(f.getType(), obj.getString(f.getName()),StringNull2Blank)});
}catch(Exception e){
}
}
list.add(returnObject);
}
return list;
}
}
。。。
...
本文介绍了JSON格式数据与Java对象之间的序列化和反序列化的具体实现方法,包括单一对象、数组对象及不同对象的处理方式,并提供了详细的代码示例。
578

被折叠的 条评论
为什么被折叠?



