特定の列の生のJSONをjqGridに表示させたいユースケースがあります。サーバーから次の JSON が送信されています。
{"items":[
{
"code":"ABC123",
"description":"",
"custom_data":{"items":[
{"prop1":"val1","prop2":"val2"},
{"prop1":"val3","prop2":"val4"}
]}
},
{"code":"ABC124","description":"","custom_data":[]},
...,
]}
そして次のようなjqGrid構成:
{
url:'/api/somewhere',
datatype: "json",
jsonReader : {
root:"items",
repeatitems: false,
id: "code"
},
colNames:['Code',
'Description',
'Data',],
colModel:[
{
name:'code', index:'code', width:100, hidden:false,
edittype:'text',
editable: true,
editrules:{required:true, edithidden:true},
editoptions: {readonly:false}
},
{
name:'description',
index:'description',
width:250,
editable:true,
edittype:'text',
editrules:{required:true}
},
{
name:'custom_data',
index:'custom_data',
width:100,
hidden:true,
sortable:false,
editable:true,
edittype:'text',
editrules:{required:false, edithidden:true}
},
],
...,
グリッドには OK が表示されますが、custom_data 列は [object Object] として表示されます。必要なのは、loadComplete イベントを使用して各行オブジェクトの custom_data オブジェクトで JSON.stringify を呼び出してみた生の JSON 文字列を表示することですが、うまくいきませんでした。custom_data オブジェクトから null 値を削除したいので、とにかく GET の後に何らかのデータ操作を行う必要があります。
私のユーザーは未加工の JSON の読み取りと編集に慣れているため、POST される未加工の JSON を受け入れるための追加/編集フォームも必要です。
オブジェクトを文字列に変換するために間違ったイベントを使用しているだけなのか、それとも何か他のことが起こっているのかはわかりません。