一下總結來自工作代碼:
1.第一種情況:
通過服務器端發送http請求獲取的接送字符串。
String jsonStr = HttpRequestUtil.sendGet(config.getAddress() + config.getPorts() + config.getFind(), ""); //把接送字符串解析成json對象進行操作 JSONObject jb = JSONObject.parseObject(jsonStr); //取“value”的鍵值,value里面是個json數組 List<Object> jsonArray = jb.getJSONArray("value"); //把json數組轉為json字符串 String jsonString = JSONObject.toJSONString(jsonArray); //又把json字符串轉為java集合得到我們需要的數據 List<TemplateJson> budgetTargetProjectTemplateJsons = JSONObject.parseArray(jsonString, TemplateJson.class);
public class TemplateJson { private String acctCode; private String parentAcctCode; private String acctName; }
2.第二種情況:
接收前端傳來的json字符串。
2.1前端代碼:
通過ajax發送
$.ajax({ type: "post", url: "/xx/xx/xx/bianzhi", data: { excelJson:JSON.stringify(tableJson),//格式化為json字符串 }, success: function (result) { if (result.status == 0) { //彈出層關閉范例 parent.parent.layer.close(parent.parent.layer.index); } if (result.message != null) { parent.parent.parent.layer.msg(result.message) } }, error: function (XMLHttpRequest, textStatus, errorThrown) { layer.msg('{"status":"' + XMLHttpRequest.status + '","readyState":"' + XMLHttpRequest.readyState + '","textStatus":"' + textStatus + '","errorThrown":"' + errorThrown + '"}') } });
2.2后端代碼:
@RequestMapping(value = "bianzhi") ResultJson bianzhi(String tableJson) { List<BudgetExcelJson> budgetExcelJsons = JSON.parseArray(tableJson, BudgetExcelJson.class); for(BudgetExcelJson budgetExcelJson : budgetExcelJsons) {
}
}