js怎么定义json对象?

图片描述

//ajax请求
        $.ajax({ 
            type : "post",
            url : url,
            dataType : "json",
            success : function(result) {
                if(result.code == 0){
                    var dt = JSON.stringify('{"name":"上海","value":22}');
                    this.config.options[optionNum].data = dt;
                }else{
                    throw new Error('selectC:下拉框获取接口异常,' + result.msg);
                }
            },
            error:function(){
                throw new Error('selectC:下拉框获取接口异常');
            }
        })

我是想先测试一下,直接给出json格式,好像不能呢。怎么弄啊

阅读 5.5k
4 个回答

浏览器的JSON的API了解一下。
clipboard.png

var dt = {
     name: 'shanghai',
     value: 22
};

这里根本没有json的什么事,你的错误是success回调中使用了this,这个this指向了window,所以this.config的结果为undefined,从而导致this.config.options报错。

排查错误要注意错误信息,这个错误控制台应该是明明白白的给你指示出来了的。

@hfhan 的回答正解,你可以在$.ajax操作之前,先缓存一下this,let This = this;在success方法中用This 代替 this;一般给出的返回值result中,你想要的数据存在data中。result.data本身就是个对象。直接用就可以了。

let This = this;
$.ajax({

        type : "post",
        url : url,
        dataType : "json",
        success : function(result) {
            if(result.code == 0){
                var dt = result.data;
                This.config.options[optionNum].data = dt;
            }else{
                throw new Error('selectC:下拉框获取接口异常,' + result.msg);
            }
        },
        error:function(){
            throw new Error('selectC:下拉框获取接口异常');
        }
    })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题