繁体   English   中英

如何将Array对象放入JSON?

[英]How to put an Array object into 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 = 1; i < roles.length; i++)
        rolesString += ',"' + roles[i] + '"';
rolesString += ']';                        

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

var json = '{ "id": "' + lid + '", "roles":' + rolesString + '}';

如您所见,我正在通过字符串对象通过Array对象循环构建JSON。 这太丑陋了,似乎应该有一种将Array数据插入JSON的干净方法。

如果只是将数组对象插入另一个对象,则:

var selRoles = getSelectedRoles(); 
var lid = $('#lid').val();  
var json = {
 id:lid ,
 roles: selRoles
};

如果需要将整个对象表示为String,则可以使用Douglas Crockford的JSON2.js来实现。

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

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

你能试一下吗:

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

您可以在此处找到函数: json_encode

您可以使用角色数组的join函数:

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

当前的浏览器提供了JSON对象类型,可以使这种事情变得微不足道(JSON.stringify(obj))..例如,请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM