如何映射一个在字段名称中既包含点又包含值子元素的json响应

时间:2019-06-07 21:51:21

标签: json jqgrid

我有一个看起来像这样的JSON:

{"resolution": [
      {
      "resolution.resolution_id": {"val": "28"},
      "resolution.resolution_comment": {"val": "sdfsdfsdfsdfs"},      
      "resolution.resolved_by_user": {"val": "XXX"}

   },
      {
      "resolution.resolution_id": {"val": "28"},
      "resolution.resolution_comment": {"val": "sdfsdfsdfsdfs"},
      "resolution.resolved_by_user": {"val": "YYY"}
   }
]}

和一个JQGrid定义:

$(newTable).jqGrid({
            url:"someurl",
            mtype: 'GET',
            datatype: "json",
            height: 250,
            colNames:['id'],
            colModel:[
                {
                    name:'resolution.resolution_id',index:'resolution.resolution_id',sorttype:'string', width:200
                },

            ],
            rowNum: 10000,
            pager:'#pager',
            toppager: true,
            viewrecords: true,
            sortname: 'resolution_id',
            jsonReader:{repeatitems: false,root:'resolution'},
            multiselect: true,
            gridview: true,
            caption: "Resolution"
          })

如何设置JSON映射,以便它可以读取resolution.resolution_id?

我尝试了jsonmap:resolution.resolution_id.val的各种组合

也尝试过

jsonmap:function(row){return row["val"]}

无济于事

1 个答案:

答案 0 :(得分:0)

尝试使用此colModel和以下jsonmap:

colModel:[
{
    name:'resolution.resolution_id',
    index:'resolution.resolution_id',
    jsonmap : function (a) { var v = a["resolution.resolution_id"]; return v.val; },
    sorttype:'string', 
    width:200
},
....
]

或simpy

jsonmap : function (a) { return a["resolution.resolution_id"].val; },