ajax怎样解析json数组并用逡驿秩

ajax怎样解析json数组并用逡驿秩,第1张

1数组
语法:
ECMAScript v3规定了数组直接量的语法,JavaScript 12和JScript 30实现了它。可以把—个用逗号分隔的表达式列表放在方括号中,创建并初始化—个数组。这些表达式的值将成为数组元素。例如:
var a = [1, true, 'abc'];
具体 *** 作查看API
ps:必须方括号隔开。
2关联数组
1语法:
var myhash= {”key1″:”val1″, “key2″:”val2″ };//obj
2var
myhash= {key1:”val1″, key2:”val2″ };//obj-也可以
ps:跟json格式几乎相同,但是json格式要求更加严格(里面的键值对必须使用双引号),但json只能作为一种格式标准,如果要对其进行 *** 作必须转换成关联数组对象(obj)。
2简单 *** 作
1向Hash关联数组添加键值
// 添加一个新键 newkey ,键值为 newval
myhash[”newkey”] = “newval”;
2删除Hash关联数组已有键值
// 删除一个键 newkey ,同时,该键值对应的 newval 也就消失了
delete myhash[”newkey”];
3遍历Hash关联数组
// 遍历整个hash 数组
for (key in myhash) {
val = myhash[key];
}
4获得值
方式1myhashkey1
方式2myhashkey2
3json
格式要求:
{”key1″:”val1″, “key2″:”val2″ };//严格按照此格式, *** 作可依照关联数组的 *** 作
二前后台交互中几个关键点
1当服务器发送的数据不是一条json,而是多条json时,则应当联系数组和关联数组来组装字符串
例如:var objs = [{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}];
2至始至终服务器给客户端的数据都只是字符串,因此为了让其能够在js中对其进行必要的 *** 作,可以通过eval()进行转换成js可执行的对象。
因此jQuey中提供的$parseJSON()是有局限的,如果是上面1提到的这种情况则就必须使用eval()进行转换,然后再通过$each(objs,function(i,o){})进行 *** 作

ajaxurl构造query数组构造如下:
1、data属于一个对象,但类型有点类似于数组,有键值及数值之分,原始数据包括{key:value}的形式,在后台接受到的值就变为array['key']=value。
2、构造表单元素,然后调用serialize()方法得到构造参数字符串。

在cs文件中,用 PageRequest["参数名"]就可以得到AJAX传递过来的值。
在 aspnet中,无论是普通数组还是JSON数组,都可以先转换成字符串,然后传递过去。aspnet mvc可以直接传对象
例如:
在JS中:
//这里用的是Jquery的ajax
funcation test()
{
var d = [1, 2, 3]; //数组
var s = djoin(','); //转换成字符串
$ajax({
url: "要访问的地址",
data: { p: s,n:d }, //p是参数名,s是值
success: function (msg) {
//msg是返回的结果,这里对返回值进行处理
}
});
}
aspnet后台:
public void TestData()
{
string s=PageRequest["p"];//得到ajax传递的参数p的值
string[] d=ssplit(',');//转换成字符数组,至于怎么转成整形数组我就不写了。
}
aspnet mvc后台:
public JsonResult TestData(string p,int[] n)
{
string[] d=psplit(',');//转换成字符数组
return Json(new {xxxx});
}
JSON数组和普通数组一样处理,都可以拼成字符串,然后传递

组装成数组形式传递,也可以json传递,后台按照List<List<String>>这样的数据结构,可能你用用一些如dwr这样的工具,
但本质都是>

1、首先确认一下,返回的obj是对象数组还是json串,如果是对象数组,那么你的用法应该是没有问题的,如果是json串,你需要用varlist=eval("("+obj+")");将其转换为对象数组,然后再取listlength。

2、如果是字符串的话,应该是没有问题的,下面代码完全复制到一个新网页中试试:

<!DOCTYPEhtml>

<htmlxmlns=">

<head>

<meta>

<title></title>

</head>

<body>

<buttononclick="showlength();">读取</button>

<scripttype="text/javascript">

functionshowlength(){

varobj="[{'device':'2014年','geekbench':'1'},{'device':'2015年','geekbench':'8'}]";

varlist=eval("("+obj+")");

alert(listlength);

}

</script>

</body>

</html>

3、也可以考虑JSON,或者XML把返回XML文档,如:<xmlversion="10"><books><bookid="0001"><name>Thik</name></book><bookid="0002"><name>Thik344</name></book></books>然后用Javascript解析这段XML,按照你想要的方式呈现在页面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13016622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存