You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用$.extend多层扩展JSON对象遇语法错误的问题排查

问题解决:jQuery.extend扩展多层对象的语法错误

错误原因及修正点:

  • 初始值类型错误:你将query初始化为字符串'{}',但$.extend需要操作JavaScript对象而非JSON字符串。应改为var sQuery = {};,否则后续扩展会把字符串当作对象处理,导致结果异常。
  • 核心语法错误:if块中调用$.extend时,第二个参数未用大括号{}包裹,不符合对象字面量语法。JS解析器会因此判定参数列表不完整,抛出missing ) after argument list错误。必须把整个query结构放在大括号内。
  • 变量引用错误:你把变量d.search.value写成了字符串"d.search.value",这样只会将字符串作为查询值,而非引用变量的实际内容,需去掉引号直接使用变量。

修正后的完整代码:

data : function ( d ) {
    var sQuery = {}; // 初始化为空对象

    sQuery = $.extend(sQuery,{size: d.length});
    sQuery = $.extend(sQuery,{from: d.start});
    
    if ( d.search.value ) {     
        sQuery = $.extend(sQuery, {               
            "query" : { 
                "query_string" : { 
                    "fields" : ["name", "description"], 
                    "query" : d.search.value, 
                    "tie_breaker" : 0 
                }
            }
        });
        console.log(sQuery);
    };
        
    return JSON.stringify(sQuery);
},                      

内容的提问来源于stack exchange,提问作者Reddy SK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:40:26