翻上来看看,还是记住的好啊,每次都想不起……
使用的是json-lib-2.2.1-jdk15.jar
1、如何将List变成Json字符串
List<Component> llist_O = getDataList(ai_StartRecord,ai_PageSize,as_Query);
JSONArray jsonArray = JSONArray.fromObject( llist_O );
String json = "{totalCount:" + getCount(as_Query) + ",root:" + jsonArray + "}";
2、如何将一个对象变成Json字符串
Component comp = ComponentBO.getComponent();
JSONObject jsonObject = JSONObject.fromObject( comp );
3、如何将一个对象的Json字符串变成该对象实例
String json = "{\"addr\":{\"homeAddr\":\"家庭住址\",\"workAddr\":\"工作单位地址
\"},\"email\":\"mail_bai@126.com\",\"name\":\"BaiLing\"}";
JSONObject jsonObject = JSONObject.fromObject( json );
Person bean = (Person) JSONObject.toBean( jsonObject ,Person.class);
String json2 = "{\"addr\":{\"homeAddr\":\"家庭住址2\",\"workAddr\":\"工作单位地址
2\"},\"email\":\"2mail_bai@126.com\",\"name\":\"BaiLing\"}";
String dataJson = "{'data':["+json+","+json2+"]}";
4、如何将一个List字符串,变成List实例
String json = "{\"addr\":{\"homeAddr\":\"家庭住址\",\"workAddr\":\"工作单位地址
\"},\"email\":\"mail_bai@126.com\",\"name\":\"BaiLing\"}";
String json2 = "{\"addr\":{\"homeAddr\":\"家庭住址2\",\"workAddr\":\"工作单位地址
2\"},\"email\":\"2mail_bai@126.com\",\"name\":\"BaiLing\"}";
方法一:
String dataJson = "{'data':["+json+","+json2+"]}";
Map classMap = new HashMap();
classMap.put( "data", Person.class );
PersonList personList = (PersonList) JSONObject.toBean(JSONObject.fromObject(dataJson),
PersonList.class, classMap);
方法二:
String jsonData = " ["+json+","+json2+"]";
//获得从前台传回的数据
String ls_Data = this.getRequestPara("jsonData");
//解析JSON数据
JSONArray jsonArray = JSONArray.fromObject(ls_Data);
List < ExamroomShicaoGradecond > list = (List) JSONArray.toCollection(jsonArray, ExamroomShicaoGradecond.class);
5、在Ext中,如何将data变成Json串
在Ext.onReady中有如下方法:
function commitStore(){
var it = store.getModifiedRecords();
var jsonData = "{data:[";
for(var i = 0, len = it.length; i < len; i++){
if(i > 0) jsonData += ",";
record = it[i];
jsonData += "{id:{componentId:" + Ext.util.JSON.encode(record.get("componentId"))
+ ",subsysInnerName:" + Ext.util.JSON.encode(subsysInnerName) + "}"
+ ",displayOrder:" + Ext.util.JSON.encode(record.get("displayOrder"))
+ "}";
}
jsonData += "]}";
document.all.subsysCompJsonData.value = jsonData;
}
Ext.getCmp('saveItems').on('click',function(){
commitStore();
});
这样,我们可以在外部触发该按钮,达到将json字符串传到后台的目的,方法如下:
function uf_Save(){
Ext.getCmp('saveItems').fireEvent('click');
submitForm("saveSubsys.action");
}
6、如何获取类的属性名串
var extFields = <%=BeanHelper.getPropertyNamesForJson(Subsys.class)%>
其中,BeanHelper所在的jar为<%@page import="com.supporter.util.*"%>
7、排除指定的字段
将要排除的字段名定义到一个数组中,在生成json时传入即可.
{{{
String [] exclusions = new String[]{ "...", "...", "." };
JsonConfig jsonConf = new JsonConfig();
jsonConf.setExcludes(exclusions);
JSONArray jsonArray = JSONArray.fromObject( llist_O, jsonConf );
}}}