解析JSON以填充dhtmlx网格

时间:2017-05-09 10:34:41

标签: javascript jquery json dhtmlx

我从ajax调用获取JSON作为响应,然后我想要在网格中加载其中的内容。

来自JQuery文档http://api.jquery.com/jQuery.ajax/,对于JSON类型的响应:

  

“json”:将响应评估为JSON并返回JavaScript   对象

所以我使用JSON.stringify将JavaScript对象转换回JSON:

importConfigurationStatusGrid.parse(JSON.stringify(result), "json");

但网格没有填充。

我得到的回答如下:

  

{“rows”:{“添加到索引”:[“file1”,“file2”,....“],   “冲突”:[“file3”,“file4”,...“],”删除“:[”file5“,   “file6”,...“]}}

我检查了https://docs.dhtmlx.com/grid__data_formats.html#jsonformat上的JSON格式,我认为两者之间的区别(我得到的响应和指定的格式)可能是原因。

如何使用dhtmlxGridObject的parse方法解析JSON字符串?

result = {"rows":{"Added to index":["file1", "file2",...."], "Conflicting":["file3", "file4",..."], "Removed":["file5", "file6",...."]}}
importConfigurationStatusGrid.parse(result, "json");

修改1:

  

@ogui:我不知道您的AJAX请求是什么样的,但您可以添加   一个dataType属性并将其设置为json,以便您的结果得到   自动解析为您的对象。

ajax请求确实指定了dataType: 'json'属性。因此不需要使用JSON.parse()。问题在于将JS对象转换为parse(dhtmlx)方法所需的有效JSON格式。

  

@ogui:你可以使用jQuery.getJSON()。

即使我使用这种方法,网格对象也必须解析它失败的相同JSON。

1 个答案:

答案 0 :(得分:0)

使用JSON.parse

result = JSON.parse(result);

我不知道您的AJAX请求是什么样的,但您可以添加dataType属性并将其设置为json,以便将result自动解析为对象您。这在jQuery AJAX documentation page you linked中提到。您可以使用jQuery.getJSON()