如果在制表器中的JSON.stringify()之后未定义值,则行数据字段将丢失

时间:2018-11-20 03:54:56

标签: tabulator

我发现.net服务器端开发中存在问题。

.net方法如下:

<Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)> Public Function fn_save(ByVal data As String)

前端js将调用此方法

fn_save(JSON.stringify(cell.getData()))

fn_save方法仅接收一个字符串。所以我必须对行数据进行字符串化。而且应该可以正常使用。

但是,如果该字段中没有值(没有编辑或清除等),则此字段值将是未定义的,如下所示。

JSON.stringify({content: undefined}); // return {} after stringify

因此对于此场景,我必须遍历对象并将undefined更改为空字符串或其他内容。

我应该这样吗?还是默认值将更改为null而不是undefined?感谢您的提前答复。

2 个答案:

答案 0 :(得分:0)

将值设置为undefined在JSON中无效,这就是为什么在对它进行字符串化时在对象中丢失它的原因。

如果您将数据作为对象数组,则可以直接将其传递到Tabulator中,而无需首先对其进行字符串化处理

如果行数据中缺少一列,Tabulator只会将其设置为空值,然后继续进行下去,就不会在表的呈现中引起任何问题

答案 1 :(得分:0)

您可以尝试使用如下所示的循环,这将是克服此限制的简单方法

var string = 
JSON.stringify(EditedData,function(k, v){return v === undefined ? null : v;});

这应该可以正常工作,任何空白字段都将在您的后端接受