-2

在 java 脚本中,我创建了一个 json var

var Token = { "TagItem": { "TagList": [tags] } };

标签在哪里

"AA","BB","CCC","DDDD"

我使用 ajax 调用一个 asp mvc 控制器,并将 json 发送到一个方法。反序列化的 json 对象是

public class TagItem
{
   public List<string> TagList { get; set; }
}

并且它在 ajax 调用中反序列化,以使用单个值 ["AA","BB","CCC","DDDD"] 列出。
而不是很多值,好像我会写

var data = { "tagItem": { "TagList": ["AA", "BB", "CCC", "DDDD"]} };

效果很好。

关于如何用js编写它的想法?

4

1 回答 1

3

[tags]将创建一个只有一个元素标签的数组。

如果tags是逗号分隔的字符串,如"AA,BB,CCC,DDDD",则可以使用.split将其转换为数组。

var Token = { "TagItem": { "TagList": tags.split(',') } };

更新:看到您发布的屏幕截图(http://i.imgur.com/IzSGS8L.png)后,我看到了真正的错误是什么。这就是你创造的方式tags

您不需要添加", 或,. 您只是在构建一个数组/一个对象,而不是在构建一个字符串。 .map返回一个数组,无需使用 将其转换为字符串.join,只需将其用作数组即可。

var tags = $('#myTags input[name="tags"]').map(function(){
    return $(this).val();
}).get();

var Token = { "TagItem": { "TagList": tags } };

[]注意:周围没有tags. 那是因为它已经是一个数组,不需要将它添加到另一个数组中。

于 2013-05-07T20:51:40.737 回答