尝试将查询结果数组从Django传递到Javascript

尝试将查询结果数组从Django传递到Javascript,javascript,jquery,html,django,Javascript,Jquery,Html,Django,正如标题所说,我试图将MySQL查询结果数组从django传递到javascript。不幸的是,我的页面源代码显示了一个字符串数组,其中似乎包含查询结果。这是我的django代码: resultFEs=[] 对于结果中的结果: fes=FrameElements.objects.filter(frame\u name=result.name) append(serializers.serialize('json',fes)) results\u json=serializers.serializ

正如标题所说,我试图将MySQL查询结果数组从django传递到javascript。不幸的是,我的页面源代码显示了一个字符串数组,其中似乎包含查询结果。这是我的django代码:

resultFEs=[]
对于结果中的结果:
fes=FrameElements.objects.filter(frame\u name=result.name)
append(serializers.serialize('json',fes))
results\u json=serializers.serialize('json',results)
返回render_to_response('newInstance.html',{'scene_id':scene_id,'corpus_id':corpus_id,'句子id,'word':word,'word_position':word_position,'results':results_json,'resultfs')
这是我的html:


var-word='{{word}}';
var wordPosition='{{word_position}}}';
var sceneId='{{scene_id}}}';
var-corpusId='{corpus_id}}';
var-sentenceId='{{statement_id}}}';
var results={results | safe}};
var resultFEs={{resultFEs|safe};
下面是生成的页面源:


var-word='the';
var-wordPosition='0:0';
var sceneId='1';
var-corpusId='1';
var-sentenceId='2';
var results=[{“pk”:1,“model”:“annotation_tool.frames”,“fields”:{“framenet_id”:234234,“name”:“Using”,“framenet”,“timestamp”:null,“has_词汇化”:1,“annotator”:19,“semotional_status”:“LITERAL”},{“pk”:2,“model”:“annotation_tool.frames”,“fields”:{“framenet_id”:234234,“name”:“Use_computer”,“frameu type”:”:“FRAMENET”,“timestamp”:null,“has_词汇化”:1,“annotator”:19,“符号状态”:“LITERAL”}}];
var resultFEs=['[{“pk”:1,“model”:“annotation_tool.frameelements”,“fields”:{“fe_name”:“Agent”,“frame”:1,“framenet_id”:null,“frameu name”:“Using”,“core_status”:“core”},{“pk”:2,“model”:“annotation_tool.frameelements”,“fields”:{“fe_name”:“Instrument”,“frame”:1,“framenet_id”:null,“frame_name”:“Using”,“core_status”:“Using”,“core”},{“pk”:13,“模型”:“注解工具.框架元素”,“字段”:{“fe名称”:“自我”,“框架”:1,“框架id”:null,“框架名称”:“使用”,“核心状态”:“核心状态”:“核心状态”:“核心状态”:“注解工具.框架元素”,“字段”:{“fe名称”:“代理”,“框架”:2,“框架id”:null,“框架名称”:“使用计算机”,“核心状态”:“核心状态”:“核心状态”:“核心”},{“pk“:4,“模型”:“注释工具.frameelements”,“字段”:{“fe_名称”:“计算机”,“框架”:2,“framenet_id”:null,“框架名称”:“使用计算机”,“核心状态”:“核心”},{“pk”:14,“模型”:“注释工具.frameelements”,“字段”:{“fe_名称”:“自我”,“框架”:2,“框架id”:null,“框架名称”:“使用计算机”,“核心状态”:“核心”},{“pk”:19,“模型”:“注释工具.框架元素”,“字段”:{“fe名称”:“桌面”,“框架”:2,“框架id”:null,“框架名称”:“使用计算机”,“核心状态”:“核心”},{“pk”:20,“模型”:“注释工具.框架元素”,“字段”:{“fe名称”:“椅子”,“框架”:2,“框架id”:null,“框架名称”:“使用计算机”,“核心状态”:“核心”},{“pk”:21,“模型”:“注释工具.frameelements”,“字段”:{“fe_名称”:“椅子”,“框架”:2,“框架id”:null,“框架名称”:“使用计算机”,“核心状态”:“核心”}]];
请注意,在结果页面源代码中,resultfs的每个元素周围都有引号。基本上,我不希望这些引号出现在那里,因此我有一个json对象的二维数组,而不是字符串的一维数组


提前感谢!

如果使用jQuery,可以使用parseJSON方法将字符串安全地转换为JSON对象:

var resultFEs = jQuery.parseJSON( {{resultFEs|safe}} );

请参阅parseJSON文档:

在您提供的代码中进行替换会导致resultFEs为null。我还尝试在原始代码的resultFEs中循环,并将每个元素设置为等于对其本身调用jQuery.parseJSON的结果,但这并没有改变任何内容,因为数组(而不是JSON对象本身)在q中uotes。请注意!遍历数组并调用parseJSON确实有效!因此,您的建议几乎是正确的。非常感谢!