首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery: JSON从一个对象转换为一个字符串?

jQuery: JSON从一个对象转换为一个字符串?
EN

Stack Overflow用户
提问于 2010-06-21 04:34:40
回答 2查看 754关注 0票数 0

我使用Ajax表单jQuery插件从服务器获取JSON:

代码语言:javascript
复制
/**
 * Helper function for the jQuery AJAX form plugin.
 */
function bindOnSuccess(form, callback) {
    form.ajaxForm({
        dataType: 'json',
        success: function (response, status, xhr, $form) {
            callback(response);
        }
    });
}

用法:

代码语言:javascript
复制
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的级别是正确的。然而,其中的一部分让我感到惊讶:

代码语言:javascript
复制
{"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)如下所示:

代码语言:javascript
复制
result = {'course': dict_course, 'analysis': analysis, 'graph': jit_graph_data}
self.response.out.write(json.dumps(result))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-21 04:45:23

获得该输出的唯一方法是,如果jit_graph_data已经是JSON,要么是因为它是在管道中的某个地方编码的,要么是因为它从源中提取时从未被解码。

票数 0
EN

Stack Overflow用户

发布于 2010-06-21 04:49:40

要添加到Ignacio's answer,可以修复服务器端代码以使用以下内容:

代码语言:javascript
复制
result = {'course': dict_course, 'analysis': analysis, 'graph': json.loads(jit_graph_data)}
self.response.out.write(json.dumps(result))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3082137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档