Javascript jQuery:JSON正在从对象转换为字符串?
我使用Ajax表单jQuery插件从服务器获取JSON:Javascript jQuery:JSON正在从对象转换为字符串?,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我使用Ajax表单jQuery插件从服务器获取JSON: /** * Helper function for the jQuery AJAX form plugin. */ function bindOnSuccess(form, callback) { form.ajaxForm({ dataType: 'json', success: function (response, status, xhr, $form) { cal
/**
* Helper function for the jQuery AJAX form plugin.
*/
function bindOnSuccess(form, callback) {
form.ajaxForm({
dataType: 'json',
success: function (response, status, xhr, $form) {
callback(response);
}
});
}
用法:
bindOnSuccess($('#course-search'), function(response) {
if (!response) {
$("#system-status").text("Sorry, no course could be found for that search.");
}
else {
$(".dept-code").text(response['course']['_dept_code']);
$(".course-number").text(response['course']['_number']);
$(".course-title").text(response['course']['_title']);
$("#div-unparsed-pre-reqs").show();
$("#unparsed-pre-reqs-teaser").show();
$("#unparsed-pre-reqs").text(response['course']['_unparsed_pre_reqs']).hide();
$("#td-required-for").text(response['analysis']['cRequiredFor']);
loadNewJson(response['graph']);
}
});
JSON已正确评估。然而,其中的一部分让我感到惊讶:
{"course": { 'foo': 'bar', /* data */},
"analysis": { 'baz': 'odp', /* data */},
"graph": "[{\"adjacencies\": [], \"id\": 2539, \"name\": \"BEE 3310: Bio-Fluid Mechanics\"}, {\"adjacencies\": [{\"nodeTo\": 2539, \"data\": {\"$direction\": [3332, 2539]}}], \"id\": 3332, \"name\": \"UNKNOWN 9999: UNKNOWN\"}]"}
为什么response['course']
和response['analysis']
被解析,但是response['graph']
仍然是一个字符串
更新:我刚刚又试了一次,成功了。我不确定我是否改变了什么。奇怪
服务器代码(Python)如下所示:
result = {'course': dict_course, 'analysis': analysis, 'graph': jit_graph_data}
self.response.out.write(json.dumps(result))
获得该输出的唯一方法是,如果
jit\u graph\u data
已经是JSON,这可能是因为它在管道中的某个地方被编码过,也可能是因为它从源代码中提取时从未被解码过。要添加到,您可以修复服务器端代码以使用此代码:
result = {'course': dict_course, 'analysis': analysis, 'graph': json.loads(jit_graph_data)}
self.response.out.write(json.dumps(result))
你的服务器代码看起来像什么?哦,我没有读完整的问题,你已经修好了吗?哦,好吧,不管怎样我都会把这个留在这里。。。