php 怎么接收前端传来的json数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 怎么接收前端传来的json数据相关的知识,希望对你有一定的参考价值。
<?phpheader("Content-type:text/html;charset=utf-8");
if($_POST)
$d = $_POST[\'data\'];//这里获取的直接就是数组了,不需要用到json_decode
echo $d[\'doing\'];
//print_r($d);
exit;
?>
<script src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
$("#xx").click(function()
var url = "test.php";
var str ="\'doing\':\'createvote\',\'type\':\'type\',\'num\':\'num\',\'votetheme\':\'votetheme\',\'creater\':\'loginname\'";//json格式字符串
var data = eval(\'(\'+str+\')\');//转换成数组对象,不加这步,那么PHP获取的是字符串。
$.post(url, \'data\': data, function(res) //注意jquery的$.post的第2个参数必须是键值对形式
alert(res);
);
);
);
</script>
<input id="xx" type="button" value="点击"> 参考技术A form表单传值到php就好了
springmvc接收json数据的常见方式
经常使用Ajax异步请求来进行数据传输,传的数据是json数据,json数据又有对象,数组。所有总结下springmvc获取前端传来的json数据方式:
1、以RequestParam接收
前端传来的是json数据不多时:[id:id],可以直接用@RequestParam来获取值
@Autowired
private AccomodationService accomodationService;
@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestParam ("id") int id) {
int res=accomodationService.deleteData(id);
return "success";
}
2、以实体类方式接收
前端传来的是一个json对象时:{[id,name]},可以用实体类直接进行自动绑定
@Autowired
private AccomodationService accomodationService;
@RequestMapping(value = "/add")
@ResponseBody
public String addObj(@RequestBody Accomodation accomodation) {
this.accomodationService.insert(accomodation);
return "success";
}
3、以Map接收
前端传来的是一个json对象时:{[id,name]},可以用Map来获取
@Autowired
private AccomodationService accomodationService;
@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestBody Map<String, String> map) {
if(map.containsKey("id"){
Integer id = Integer.parseInt(map.get("id"));
}
if(map.containsKey("name"){
String objname = map.get("name").toString();
}
// 操作 ...
return "success";
}
4、以List接收
当前端传来这样一个json数组:[{id,name},{id,name},{id,name},...]时,用List<E>接收
@Autowired
private AccomodationService accomodationService;
@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestBody List<Accomodation> list) {
for(Accomodation accomodation:list){
System.out.println(accomodation.toString());
}
return "success";
}
以上是关于php 怎么接收前端传来的json数据的主要内容,如果未能解决你的问题,请参考以下文章