我从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。
答案 0 :(得分:0)
使用JSON.parse。
result = JSON.parse(result);
我不知道您的AJAX请求是什么样的,但您可以添加dataType
属性并将其设置为json
,以便将result
自动解析为对象您。这在jQuery AJAX documentation page you linked中提到。您可以使用jQuery.getJSON()。