簡體   English   中英

如何將JSON字符串轉換為JavaScript Object Literal

[英]How can I convert my JSON string to a JavaScript Object Literal

我正在使用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));

如果您需要它在較舊的瀏覽器中運行 ,則需要包含一個墊片

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM