首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JSON.Stringify包括数组的索引和长度

JSON.Stringify包括数组的索引和长度
EN

Stack Overflow用户
提问于 2017-05-14 21:24:38
回答 1查看 730关注 0票数 1

当我使用AJAX将数组发送到控制器时,为了便于使用,我将其转换为JSON。

我这样构建我的数组:

代码语言:javascript
运行
复制
$("#selectedDropdown option").each(function () {
     selectedLanguages.push($(this).val());
});

我把它串成这样:

代码语言:javascript
运行
复制
data["PreferredLanguages"] = $(selectedLanguages);

然而,当它到达我的控制器时,它看起来是这样的:

代码语言:javascript
运行
复制
"PreferredLanguages":{"0":"ZA","1":"CM","2":"GH","3":"ES","length":4}} 

注意:它看起来甚至不像一个数组。

这会阻止我对其进行反序列化。我如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2017-05-14 21:37:24

$(selectedLanguages)不会对数组进行字符串化。$是jQuery对象的constructor

您可以使用global JSON object为数组添加字符串:

代码语言:javascript
运行
复制
data["PreferredLanguages"] = JSON.stringify(selectedLanguages);

您可以通过运行以下代码片段来查看数组和jQuery对象之间的区别:

代码语言:javascript
运行
复制
var arr = ['a','b','c'];
var $arr = $(arr);

console.log('$arr:', JSON.stringify($arr));
console.log('$arr is an array:', Array.isArray($arr));

console.log('arr:', JSON.stringify(arr));
console.log('arr is an array:', Array.isArray(arr));
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43964403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档