+ -
当前位置:首页 → 问答吧 → jquery 得到服务器传回的json

jquery 得到服务器传回的json

时间:2011-06-01

来源:互联网


使用 把datatable数据 显示StringBuilder了
还有一个select控件
{[{pId:"1",sName:"长沙",pId:"2",sName:"娄底",pId:"3",sName:"邵阳"}}
function cter(value)
{
$.post("defalut.aspx",{act:'lgl',name:value},function(e){
//怎么得到json的值
得到后 把长沙 娄底 邵阳 绑定到select控件上
}
<from >
<select id="sel_name_oh">
  </select>

在线懂的 帮下忙 弄了好几天了 实在不会了 谢谢

作者: alluserinfo   发布时间: 2011-06-01

你的json不怎么好处理 。
你看能输出 [{"pId":1,"sName":"长沙"},{"pId":"2","sName":"娄底"},{"pId":"3","sName":"邵阳"}] 这样不 。
然后js解析
HTML code

 for(var i = 0 ; i < json.length ; i++){
                alert(json[i].pId + "  " + json[i].sName);
            } 

作者: zell419   发布时间: 2011-06-01

说下思路啊:
利用ashx处理文件,获取sname,然后把相应的值输出,然后在对应的页面上利用jquery获取select节点,对相应的节点赋值。

作者: gxg2008540   发布时间: 2011-06-01

不是吧,返回的字符串是{[{pId:"1",sName:"长沙",pId:"2",sName:"娄底",pId:"3",sName:"邵阳"}}??

不符合json的格式,只能靠正则来取数据了。。

JScript code
$.post("defalut.aspx",{act:'lgl',name:value},function(e){
        var mc = e.match(/"([^"]+)"/g), sel = document.getElementById('sel_name_oh');
        for (var i = 0; i < mc.length; i += 2) sel.options.add(new Option(mc[i + 1].replace(/"/g, ''), mc[i][1].replace(/"/g, '')));
}
}

作者: showbo   发布时间: 2011-06-01

引用 3 楼 showbo 的回复:

不是吧,返回的字符串是{[{pId:"1",sName:"长沙",pId:"2",sName:"娄底",pId:"3",sName:"邵阳"}}??

不符合json的格式,只能靠正则来取数据了。。

JScript code
$.post("defalut.aspx",{act:'lgl',name:value},function(e){
var mc = e.mat……


{[{"pId":"1","sName":"长沙","pId":"2","sName":"娄底","pId":"3","sName":"邵阳"}]}
现在是这样的数据了 怎么把首和尾的{}去掉呢

作者: flat_boys   发布时间: 2011-06-01

去掉首尾的{} ???
你substr去掉啊, 但是关键问题是 你json数据的本身格式就不正确啊!~

[{"pId":"1","sName":"长沙"},{"pId":"2","sName":"娄底"},{"pId":"3","sName":"邵阳"}]

貌似是这样的吧!~

作者: liujian650107   发布时间: 2011-06-01