javascript - 如何将 JSON 字符串转换为 JavaScript 对象文字

标签 javascript jquery json jqgrid

我正在使用 jqGrid,目前我遇到了一些问题,主要是因为它的配置。

目前我想这样做:

    var tableConfigJson = $treeTable.getMappedJson();

    jQuery(function() {
        jQuery("#grid").jqGrid(tableConfigJson);
    });

$treeTable 是我在服务器端使用速度映射检索的对象。

现在我从服务器获取的 JSON 很好,但是当我将它传递给 jqGrid 为其设置配置时,它不起作用。如果我在 javascript 中设置配置,但将配置创建为 javascript 对象,则它可以正常工作,但是如果我只是将 JSON 作为配置传递,则它不起作用。现在我的问题是,有没有一种简单的方法可以解决这个问题?或者我是否需要使用 JSON 再次映射配置。

如果我这样做:

jQuery(function() {


jQuery("#grid").jqGrid({
    treeGrid: true,
    treeGridModel: 'adjacecncy',
    ExpandColumn: 'name',
    datatype: "local",
    mtype: 'Get',
    colNames: ['id','Name','MenuId','Menu Name'],
    colModel: [
        {name:'RowId',index:'RowId',width:300,fixed:true},
        {name:'Name',index:'Name',width:300,fixed:true},
        {name:'MenuId',index:'MenuId',width:300,fixed:true},
        {name:'MenuName',index:'MenuName',width:300,fixed:true},
    ],
    root:[
        {id:"1",Name:"Main Menu", MenuId:"1",MenuName:"Menu1"},
        {id:"2",Name:"Main Menu1",MenuId:"2",MenuName:"Menu2"},
        {id:"3",Name:"Main Menu2",MenuId:"3",MenuName:"Menu3"}
    ],
    pager: '#dvtreegridsamp',
    Caption: 'example'
)};

然后就可以了。

更新:

这是我的对象在控制台中的输出,但我想我现在知道问题是什么。

Object {datatype: "local", data: Array[3], colNames: Array[2], colModel: Array[2], height: "auto"…}ExpandColumn: "id"
caption: "I am SAD"
colModel: Array[2]0: Object1: Objectlength: 2__proto__: Array[0]colNames: Array[2]
data: Array[3]
datatype: "local"
height: "auto"
sortname: "id"
treeGrid: "true"
treeGridModel: "adjacency"
treedatatype: "local"

问题在于,用于配置的参数被解析为数组对象,而不是 JSON 样式字符串。所以这些参数被忽略。我需要这些是 JSON 风格,然后一切正常。

如果我需要澄清任何事情,请告诉我,已经很晚了,而且我已经喝了很多咖啡。

最佳答案

如果tableConfigJson当前是一个JSON字符串,就像你建议的那样,那么你只需要解析它:

jQuery("#grid").jqGrid(JSON.parse(tableConfigJson));

如果您need it to work in older browsers ,您需要包括 a shim .

关于javascript - 如何将 JSON 字符串转换为 JavaScript 对象文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26163842/

相关文章:

javascript - 没有任何 {} 的 for 循环

javascript - 加载 ajax 内容后 Jquery 搜索过滤器不起作用

javascript - 仅滚动一次将类别添加到值上

php - 评论系统 jQuery/ajax php mysql

python - 具有数据初始化的 CSV 列的 JSON 键值

javascript - 来自 Jquery.ajax 的 JSON 响应四舍五入较大的数字,所以我无法获得正确的值

javascript - 输入警告 : Each child in a list should have a unique "key" prop. - react

javascript - JSON发送的数据始终为空

javascript - 输入字段值属性不会更改,除非键入 ="hidden"

ruby-on-rails - json erb模板找不到其他html部分