一、前台封装json对象:
$("#save").click(function(){
var objs=$("#tagList .commonTb1 .selectBox");
var jsonObject = JSON.parse("{\"data\":[]}");
objs.each(function(index){
var tagObject={
id : "",
name : "",
status : ""
}
if($(this).hasClass("selectedBox")){
tagObject.id = $(this).attr("mid");
tagObject.name = $(this).parent().parent().next().children().val();
tagObject.status = "1";
}else{
tagObject.id = $(this).attr("mid");
tagObject.name = $(this).parent().parent().next().children().val();
tagObject.status = "0";
}
jsonObject.data.push(tagObject);
});
});
二、后台解析json对象:
public boolean saveSelectedTag(String tagjsonObject) throws JSONException{
JSONObject json=new JSONObject(tagjsonObject);
JSONArray jsonArray = json.getJSONArray("data");
List<CmsTag> listTag = new ArrayList<CmsTag>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject tag = (JSONObject) jsonArray.get(i);
Integer showDirection = Integer.parseInt(tag.get("status").toString());
Integer tagId = Integer.parseInt(tag.get("id").toString());
String directionName = tag.get("name").toString();
if(showDirection==1){
showDirection = DirectionState.SHOW.getDirectionState();
}else{
showDirection = DirectionState.NOTShow.getDirectionState();
}
CmsTag cmsTag = cmsTagDao.findOne(tagId);
cmsTag.setShowDirection(showDirection);
cmsTag.setDirectionName(directionName);
listTag.add(cmsTag);
}
try{
cmsTagDao.save(listTag);
return true;
}catch(Exception e){
return false;
}
}
三、jackson解析jsonz数组字符串:
public boolean saveSelectedTag(String tagjsonObject) throws IOException{
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readValue(tagjsonObject, JsonNode.class);
//获得结点为rules的集合
JsonNode nameNode = rootNode.path("data");
List<CmsTag> listTag = new ArrayList<CmsTag>();
for (int i = 0; i < nameNode.size(); i++) {
JsonNode tagObject = nameNode.get(i);
Integer showDirection = Integer.parseInt(tagObject.get("status").asText()); //asText(),是去掉对象中的双引号:(eg:" "1" ")
Integer tagId = Integer.parseInt(tagObject.findValue("id").asText());
String directionName = tagObject.findValue("name").asText();
if(showDirection==1){
showDirection = DirectionState.SHOW.getDirectionState();
}else{
showDirection = DirectionState.NOTShow.getDirectionState();
}
CmsTag cmsTag = cmsTagDao.findOne(tagId);
cmsTag.setShowDirection(showDirection);
cmsTag.setDirectionName(directionName);
listTag.add(cmsTag);
}
try{
cmsTagDao.save(listTag);
return true;
}catch(Exception e){
return false;
}
}