在json对象中注入字符串

时间:2013-05-07 20:32:43

标签: javascript jquery json

在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调用list中反序列化,其中包含单个值[“AA”,“BB”,“CCC”,“DDDD”]。
而不是像我想写的那样多的价值

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

哪个效果很好。

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

1 个答案:

答案 0 :(得分: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。那是因为它已经一个数组,不需要将它添加到另一个数组。