Javascript 如何将数组对象放入JSON?

Javascript 如何将数组对象放入JSON?,javascript,arrays,json,Javascript,Arrays,Json,我已经编写了以下Javascript代码。我能做的就是将数据格式化为有效的JSON: var roles = getSelectedRoles(); // returns an Array object /* TODO: Find a better way to get the roles into my JSON data */ var rolesString = '["' + roles[0] + '"'; if (roles.length > 1) for (var i =

我已经编写了以下Javascript代码。我能做的就是将数据格式化为有效的JSON:

var roles = getSelectedRoles(); // returns an Array object

/* TODO: Find a better way to get the roles into my JSON data */
var rolesString = '["' + roles[0] + '"';
if (roles.length > 1)
    for (var i = 1; i < roles.length; i++)
        rolesString += ',"' + roles[i] + '"';
rolesString += ']';                        

var lid = $('#lid').val();

var json = '{ "id": "' + lid + '", "roles":' + rolesString + '}';
var roles=getSelectedRoles();//返回一个数组对象
/*TODO:找到更好的方法将角色放入我的JSON数据中*/
变量RoleString='[“'+角色[0]+'”;
如果(roles.length>1)
对于(变量i=1;i
如您所见,我正在构建JSON,字符串连接循环通过数组对象。这太难看了,似乎应该有一种干净的方法将我的数组数据插入我的JSON中。

你能试试吗:

<script type="text/javascript">
var jsonObj = {
    id: lid,//$('#lid').val()
    roles:roles // getSelectedRoles()
}
var jsonStr = json_encode(jsonObj);
</script>

var jsonObj={
id:lid,/$('#lid').val()
角色:角色//getSelectedRoles()
}
var jsonStr=json_encode(jsonObj);

您可以在此处找到函数:如果只是将数组对象插入另一个对象,则:

var selRoles = getSelectedRoles(); 
var lid = $('#lid').val();  
var json = {
 id:lid ,
 roles: selRoles
};
如果需要将整个对象表示为字符串,则可以使用Douglas Crockford实现相同的功能

在页面中包含上述js文件,然后使用:

var jsonString = JSON.stringify(json) //json is from previous code.

您可以使用角色数组的连接功能:

var rolesString = '["' + roles.join('", "') + '"]';

当前的浏览器提供了一种JSON对象类型,可以使这类事情变得微不足道(JSON.stringify(obj))。。比如说,