前端js代码
var initTree =
[
{
"text": "Title/Notes",
"href": "#TitleNotes"
},
{
"text": "Options",
"href": "#Options"
},
{
"text": "Climatology",
"href": "#Climatology"
},
{
"text": "Hydrology",
"href": "#Hydrology",
"nodes":[
{
"text": "Rain Gages",
"href": "#RainGages"
},
{
"text": "Subcatchments",
"href": "#Subcatchments"
}
]
},
{
"text": "Hydraulics",
"href": "#Hydraulics",
"nodes": [
{
"text": "Nodes",
"href": "#Nodes",
"nodes": [
{
"text": "Junctions",
"href": "#Junctions"
},
{
"text": "Outfalls",
"href": "#Outfalls"
},
{
"text": "Dividers",
"href": "#Dividers"
},
{
"text": "Storage Units",
"href": "#StorageUnits"
}
]
},
{
"text": "Links",
"href": "#Links",
"nodes": [
{
"text": "Conduits",
"href": "#Conduits"
},
{
"text": "Pumps",
"href": "#Pumps"
},
{
"text": "Orifices",
"href": "#Orifices"
},
{
"text": "Weirs",
"href": "#Weirs"
},
{
"text": "Outlets",
"href": "#Outlets"
}
]
},
{
"text": "Transects",
"href": "#Transects"
},
{
"text": "Controls",
"href": "#Controls"
}
]
},
{
"text": "Quality",
"href": "#Quality",
"nodes":[
{
"text": "Pollutants",
"href": "#Pollutants"
},
{
"text": "Land Uses",
"href": "#LandUses"
}
]
},
{
"text": "Curves",
"href": "#Curves",
"nodes":[
{
"text": "Control Curves",
"href": "#ControlCurves"
},
{
"text": "Diversion Curves",
"href": "#DiversionCurves"
},
{
"text": "Pump Curves",
"href": "#PumpCurves"
},
{
"text": "Rating Curves",
"href": "#RatingCurves"
},
{
"text": "Shape Curves",
"href": "#ShapeCurves"
},
{
"text": "Storage Curves",
"href": "#StorageCurves"
},
{
"text": "Tidal Curves",
"href": "#TidalCurves"
}
]
},
{
"text": "Time Series",
"href": "#TimeSeries"
},
{
"text": "Time Patterns",
"href": "#TimePatterns"
},
{
"text": "Map Labels",
"href": "#MapLabels"
}
];
ajax post到后台:
function makeTree() {
$.ajax({
type:"post",
dataType:'JSON',
contentType:"application/json;charset=UTF-8",
// traditional:true,
async:true,
url:"/webswmm/loadTree",
data:JSON.stringify(initTree),
success:function (newTree) {
// 获取geojson
console.log(data);
}
});
}
后台代码:
@RequestMapping(value = "/loadTree",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
@ResponseBody
public JSONArray loadTree(@RequestBody JSONArray jsonArray)
{
return null;
}
企图用JSONArray类型的参数直接接收前台的json数组字符串,失败。
解决方法:将js发送的json数组包装一下:
function makeTree() {
$.ajax({
type:"post",
dataType:'JSON',
contentType:"application/json;charset=UTF-8",
// traditional:true,
async:true,
url:"/webswmm/loadTree",
data:JSON.stringify({initTree:initTree}),
success:function (newTree) {
// 获取geojson
console.log(data);
}
});
}
后台:用JSONObject接收,然后取出JSONArray
@RequestMapping(value = "/loadTree",method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
@ResponseBody
public JSONArray loadTree(@RequestBody JSONObject jsonObject)
{
JSONArray jsonArray = jsonObject.getJSONArray("initTree");
return null;
}
问题解决了,可是不知道为什么?希望路过的大神指点迷津