如何使用javascript或jQuery清除json对象

时间:2013-07-15 04:51:56

标签: javascript jquery json

我有JSON对象如下。发送ajax调用后我想清除它。我该怎么办?

var cfamFwdDtls={
    cndtwizid:[],
    clientIdsInstnIds:[],
    positioncd:'',
    positionCnt:'',
    rcrtrInstnId:'',
    positionLocation:{
        cntryIdFrCndt:'',
        stateIdFrCndt:'',
        zipIdFrCndt:'',
        cityIdFrCndt:''

    },
    searchPstnSkill:[]
};

提前致谢....

4 个答案:

答案 0 :(得分:6)

只需将变量重置为{};

即可
cfamFwdDtls = {}; 
// or
cfamFwdDtls = new Object; 

这是你开始思考的那一刻:“Whoooa,我简直不敢相信。”

在特殊情况下:

你可以采取“漫长”的方式:

for (var key in cfamFwdDtls) {
    delete cfamFwdDtls[key];
}

出于您的目的,这不是非常实用,但如果您想要更具选择性,循环是可行的方法。

答案 1 :(得分:2)

for (var entry in cfamFwdDtls) delete cfamFwdDtls[entry];

如果您只是重新分配到{},如果您的对象有多个引用,则会遇到麻烦。也可能面临垃圾收集问题。

答案 2 :(得分:0)

如果您想删除object.Something就是这样的替代方案

delete cfamFwdDtls;

您可以使用delete关键字删除对象。

更多详情read

example

答案 3 :(得分:0)

问题

当我遇到这个问题时,我想解决两个问题。

  1. 为复杂的结构定义提供一个位置。
  2. 确保整个定义都已重置。

解决方案

基本思想是让函数返回空结构。如果它不在函数中,您可以更改结构本身而不是结构的实例。

示例

我个人使用它,但我也在类中包含 API 函数并使其成为 HTTP 服务。

class complexStructure {
  constructor () {
    this.payload = resetPayload();
  }
  resetPayload () {
    this.payload = {
      cndtwizid: [],
      clientIdsInstnIds: [],
      //...
    };
  }
}

功能

function resetStructure () {
  return {
    cndtwizid: [],
    clientIdsInstnIds: [],
    //...
  };
}

let resetStructure = resetStructure()