不包括'__gwt#u ObjectId';来自DevMode中的JSON.stringify(jso)

不包括'__gwt#u ObjectId';来自DevMode中的JSON.stringify(jso),gwt,Gwt,我有一个JSON web服务,并将API建模为JavaScriptObject覆盖类树。效果很好。除了在DevMode中,GWT内部构件和贯穿件 似乎在DevMode中,对于树中每个对象上的$wnd.JSON.stringify(jso),GWT DevMode添加了一个名为“\uuu GWT\u ObjectId”的附加属性。这应该不是问题,但我使用的服务似乎非常挑剔,因此我的请求将以“无效参数:\uuu gwt\u ObjectId”结束 在深入研究GWT源代码时,我发现提到了JSON.st

我有一个JSON web服务,并将API建模为JavaScriptObject覆盖类树。效果很好。除了在DevMode中,GWT内部构件和贯穿件

似乎在DevMode中,对于树中每个对象上的$wnd.JSON.stringify(jso),GWT DevMode添加了一个名为“\uuu GWT\u ObjectId”的附加属性。这应该不是问题,但我使用的服务似乎非常挑剔,因此我的请求将以“无效参数:\uuu gwt\u ObjectId”结束

在深入研究GWT源代码时,我发现提到了JSON.stringify(jso,replacer),但正如评论所说,这在Safari4.x上是不可用的。虽然5已经添加了它?我使用的是Linux,但我不想开始依赖黑客,当其他人尝试使用Linux时,他们会把事情搞砸


我真的不想在字符串化之后用regexp来咀嚼结果,因为我觉得这可能会影响性能。与对树中的每个对象递归调用“delete jso.\uuu gwt\u ObjectId”相同:-(

好吧,就目前而言,这让事情变得可行:

return $wnd.JSON.stringify(jso, function(key, value) {
  if (key == '__gwt_ObjectId') {
    return;
  }
  return value;
});
(如果您可以提供更多关于浏览器使用和支持的详细信息,请随时回答此问题。)

我们遇到了相同的问题(仅在Chrome上,没有Firefox),这为我们解决了问题。谢谢。