现在我服务器端给我的客户端返回一段json是这样的
{"result":"success",
"building":[{"id":"4028d3f23b1b70a3013b1b7710bb0002","building_num":"五号楼"}, {"id":"4028d3f63addcc95013addd69bd50007","building_num":"一号楼"}]}即一个字符串和一个building对象,现在这个result能得到,building怎么在客户端获取?直接获取获取不到!想截取json字符串但是json格式不支持substr方法。
{"result":"success",
"building":[{"id":"4028d3f23b1b70a3013b1b7710bb0002","building_num":"五号楼"}, {"id":"4028d3f63addcc95013addd69bd50007","building_num":"一号楼"}]}即一个字符串和一个building对象,现在这个result能得到,building怎么在客户端获取?直接获取获取不到!想截取json字符串但是json格式不支持substr方法。
var json = eval("("+str+")");
var obj = eval("(" + json + ")");
var result = obj.result;
var building = obj.building
$.ajax({
type : "POST",
url : "/work/housesource/findBuildingByPoint.do?id="+pointId,
dataType : "text",
success : function(data) {
var strbuilding = data.substring(31,data.length - 1);
alert(strbuilding);
var arr = eval('('+strbuilding+')');
for(var i=0;i<arr.length;i++){
alert(arr[i].id);
alert(arr[i].building_num);
}
type : "POST",
url : "/work/housesource/findBuildingByPoint.do?id="+pointId,
dataType : "json",////
success : function(data) {
// var strbuilding = data.substring(31,data.length - 1);
// alert(strbuilding);
// var arr = eval('('+strbuilding+')');
arr=data.building///////////
for(var i=0;i<arr.length;i++){
alert(arr[i].id);
alert(arr[i].building_num);
}
+1,直接返回json对象之后,可以根据data.building来获取你{}里面的属性,之后再遍历就行!
就你贴出来的代码是标准json格式,不会不执行success回调的,只能说是实际返回的格式有问题。增加error回调输出返回了什么内容$.ajax({
type : "POST",
url : "/work/housesource/findBuildingByPoint.do?id="+pointId,
dataType : "json",////
error:function(xhr){alert('出错了\n'+xhr.responseText)},///////
success : function(data) {
// var strbuilding = data.substring(31,data.length - 1);
// alert(strbuilding);
// var arr = eval('('+strbuilding+')');
arr=data.building///////////
for(var i=0;i<arr.length;i++){
alert(arr[i].id);
alert(arr[i].building_num);
}
var result = jQuery.parseJSON(data.d);
var arr = result.buiding;
var len = arr.length;
for (var i=0;i<len;i++)
{
alert(arr[i].id);
alert(arr[i].building_num);
}