1

我正在使用 jQuery AJAX 发布请求将客户端 JS 数组传递给服务器端 VB.NET 代码。我有一种可行的方法,但我想知道最佳实践。我是这样开始的:

JS:

var myArray=["Apple","Banana"];
$.ajax({url:"myhandler.ashx", 
        data:{"myArray":myArray.toString()}, type: "POST"});

VB:

Dim myArray as String() 
    = HttpContext.Request.Form("myArray").Split(New [Char]() {","c})

在 JS 中,myArray.toString() 将我的数组转换为逗号分隔的字符串“Apple,Banana”,然后在 VB 中,Split 将其转换回字符串数组。

然后我发现ajax会自动为你序列化数组。所以我可以关闭 .toString() :

$.ajax({url:"myhandler.ashx", data:{"myArray":myArray}, type: "POST"});

当我这样做时,在 VB 端我发现 HttpContext.Request.Form 不再有一个键“myArray”它现在称为“myArray[]”,你瞧,它是一个逗号分隔的字符串:“Apple,香蕉”。

以下是我的问题:

1) VB.NET 中是否有内置的反序列化方法将逗号分隔的字符串转换回字符串数组?

2)我的数组的Ajax序列化是否只是调用toString(),如果存在反序列化函数,它只是像我一样调用Split()吗?

3)除了标准之外,使用内置的序列化/反序列化有什么好处吗?我能想到一个缺点。我不喜欢它通过添加方括号来重命名我的密钥。

4

1 回答 1

0

将数组转换为 JSON:

$.ajax({url:"myhandler.ashx", data:{"myArray":JSON.stringify(myArray)}, type: "POST"});

使用Json.NET反序列化 .NET 中的 JSON 数组

于 2012-10-03T17:16:36.230 回答