링크 : 클릭
먼저 어떤 형태의 값으로 넘어오는지 확인을 한다.
Enumeration<String> parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()) {
String paramName = parameterNames.nextElement();
//out.write(paramName);
//out.write("n");
System.out.print(paramName + " : ");
String[] paramValues = request.getParameterValues(paramName);
for (int i = 0; i < paramValues.length; i++) {
String paramValue = paramValues[i];
System.out.print(paramValue + " , ");
//out.write("t" + paramValue);
//out.write("n");
}
}
------------------------------------------------------------------------------
command : test ,
_search : true ,
nd : 1437722029167 ,
rows : 10 ,
page : 1 ,
sidx : nid ,
sord : desc ,
filters : {"groupOp":"AND","rules":[{"field":"nid","op":"eq","data":"3"}]}
------------------------------------------------------------------------------
이러한 형태로 넘어 오게 되는데 필요한 부분은 바로
filters의 값중에 rules의 field와 op 그리고 data가 필요하다.
위의 값은 String 형태의 값이기 때문에 JSON형태로 변경을 해주어야 하는데 JSONArray에 바로 넣을러고 하면 형태가 맞지가 않기 때문에 에러가 발생 그래서 아래와 같이 사용하여 JSON형태로 변경하여 사용을 한다.
String filters = request.getParameter("filters");
JSONObject jsonFilter = (JSONObject)JSONSerializer.toJSON(filters);
JSONArray rules = jsonFilter.getJSONArray("rules");
int rulesCount = JSONArray.getDimensions(rules)[0];
for (int i = 0; i < rulesCount; i++) {
JSONObject rule = rules.getJSONObject(i);
System.out.println("field :" + rule.getString("field"));
System.out.println("op :" + rule.getString("op"));
System.out.println("data :" + rule.getString("data"));
}



덧글