Javascript 如何在服务器上设置“无值”以与主干网兼容?

Javascript 如何在服务器上设置“无值”以与主干网兼容?,javascript,php,mysql,backbone.js,Javascript,Php,Mysql,Backbone.js,我的意思是,我想使用模型的默认对象文本,它从下划线调用此代码: 临时代码 从下划线开始 仅当值设置为“未定义”时,才会设置默认值。然而,JSON不支持发送未定义的数据,我也不认为这是我使用的mysql表中的默认值 显然,我可以使用中间值,这就是我目前正在做的。我只是将数字0存储为无值的默认值,并通过JSON发送,然后只做一个基本的if/else 但这是有效的,我想我可以使用更好的1对1关联。我会使用内置的解析方法,否则我看不到解决方法。这是一个困难的困境,因为你会考虑一个会导致默认值被设置的值吗

我的意思是,我想使用模型的默认对象文本,它从下划线调用此代码:

临时代码

从下划线开始

仅当值设置为“未定义”时,才会设置默认值。然而,JSON不支持发送未定义的数据,我也不认为这是我使用的mysql表中的默认值

显然,我可以使用中间值,这就是我目前正在做的。我只是将数字0存储为无值的默认值,并通过JSON发送,然后只做一个基本的if/else


但这是有效的,我想我可以使用更好的1对1关联。

我会使用内置的解析方法,否则我看不到解决方法。这是一个困难的困境,因为你会考虑一个会导致默认值被设置的值吗?我想出了一个快速的解决方案,可以过滤掉所有被认为是虚假的值。你可以建立在下面的基础上

parse: function(data) {
    // This should return values that are truthy
    // So for eg if a property has a value of 0 or null it will not be returned,
    // thus leaving in your default values
    return _.filter(data, function(obj) { return obj; });
}

我在这里也发现了一个请求

您应该使用一个函数,返回一个对象作为默认值,例如默认值:函数{/*发挥您的魔力*/return{name:null,picture:null}}哦,对于空字段,您应该使用null而不是undefined。重点是我需要undefined,JSON不支持undefined。虽然null是很好的b.c.我可以在服务器上使用它作为默认值,JSON将支持它,但它不起作用b.c.默认值不会识别它。您的.默认值不会识别null,因为您正在将obj[prop]与void 0进行比较,void 0会在服务器上将undefinedI think设置返回为null,以便JSON发送它,然后在客户端对其进行解析,以便将所有空值转换为未定义值是一个很好的解决方案无效的是的,一个很好的快速功能可以解决这个问题,不需要把蚂蚁山变成一座山。
_.defaults = function(obj) {
    each(slice.call(arguments, 1), function(source) {
      if (source) {
        for (var prop in source) {
          if (obj[prop] === void 0) obj[prop] = source[prop];
        }
      }
    });
    return obj;
  };
parse: function(data) {
    // This should return values that are truthy
    // So for eg if a property has a value of 0 or null it will not be returned,
    // thus leaving in your default values
    return _.filter(data, function(obj) { return obj; });
}