Json概念
- 概念:JSON (JavaScript Object Notation) 一种简单的数据格式,是一种比较轻量级的数据存储格式;
json对象
- 比如下面是一个json对象
- [{"id":1,"brand":"奔驰","color":"黑色","price":"500,000","carnum":"京A88888"}, {"id":2,"brand":"奥迪","color":"黑色","price":"500,000","carnum":"京A66666"}]
2.可以用 xxx[i].id 的方式来获取id
json字符串
json的字符串只是在json对象的基础上加了一个 “” 双引号
- 如下
”[{"id":1,"brand":"奔驰","color":"黑色","price":"500,000","carnum":"京A88888",{"id":2,"brand":"奥迪","color":"黑色","price":"500,000","carnum":"京A66666"}]”
如果html界面解析的话就需要用eval 使json字符串变成json对象
第一种
转https://blog.youkuaiyun.com/qmdweb/article/details/83017186
页面端
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function testSpringParam(){
var name=$("#name").val();
var email=$("#email").val();
$.ajax({
type: 'POST',
url: 'paramurl/paramTest.do' ,
dataType: 'text',
contentType:'application/json;charset=UTF-8',
//提交json字符串数组,如果提交json字符串去掉[]
data:JSON.stringify([{'name':name,'email':email}]),
success:function(data){
alert(data);
},
error:function(textStatus, errorThrown){
console.log(textStatus);
alert(textStatus);
}
});
}
</script>
</head>
<body>
<form action="" id="f1" name="f1">
<input name="name" id="name" type="text" value="zhangsan1"><br>
<input name="email" id="email" type="text" value="zhangsan@163.com"><br><br>
<a href="#" onclick="testSpringParam();">测试</a>
</form>
</body>
后台代码
package com.pb.web.controller;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@Controller
@RequestMapping("/paramurl")
public class ParamController {
@RequestMapping(value="/paramTest.do",method=RequestMethod.POST)
@ResponseBody
public String paramTest(@RequestBody String param){
System.out.println(param);
JSONObject jo=new JSONObject();
//如果页面传的是json字符串,用下列方式解析
// Map<String, Object> m=(Map<String, Object> )jo.parse(param); //string转map
// System.out.println(m);//
// JSONObject parseObject = jo.parseObject(param); //string转json
// System.out.println(parseObject);
//如果页面传的是json数组字符串,用下列方式解析
List<Map> parseArray = jo.parseArray(param, Map.class);
System.out.println(parseArray); //string转list
JSONArray parseArray2 = jo.parseArray(param);
System.out.println(parseArray2);
return "ok";
}
}
第二种
转 https://my.oschina.net/freegeek/blog/299134
页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript"
src="<%=basePath%>resources/scripts/jquery-2.0.3.min.js"></script>
<script type="text/javascript">
$(function(){
$("#send").click(function(){
var jsondata = $("#jsondata").val();
var jsonobj = JSON.parse(jsondata)
var callback = function (data) {
$("#result").html(JSON.stringify(data))
}
$.postJSON('<%=basePath%>api/user/test', jsonobj, callback)
});
})
$.postJSON = function(url, data, callback) {
return jQuery.ajax({
'type' : 'POST',
'url' : url,
'contentType' : 'application/json',
'data' : JSON.stringify(data),
'dataType' : 'json',
'success' : callback
});
};
</script>
</head>
<body>
JSON对象
<br>
<textarea id="jsondata" cols="60" rows="5">
{"id":2,"gender":0,"mobile":"15072370640","password":"123456","accessToken":"fd6bf3dd3cca4b0ca7c9099447994dba"}
</textarea><br>
<button id="send">POST</button><br>
<font color="red" id="result"></font>
</body>
</html>
spring 客户端
@RequestMapping(value="/test",method=RequestMethod.POST)
public @ResponseBody Map<String, Object> testPostJson(
@RequestBody UserForm userForm,
BindingResult bindingResult) {
Map<String, Object> map = new HashMap<String, Object>();
if (bindingResult.hasErrors()) {
map.put("errorCode", "40001");
map.put("errorMsg", bindingResult.getFieldError().getDefaultMessage());
}
map.put("user", userForm);
return map;
}