2

我在 Rhino 中使用 Javacript 并且无法导入外部文件(但我确实可以访问 java.lang 和 java.util),所以我正在寻找一个 toString() 来发出它所在对象的 JSON。

MyOjbect.prototype.toString = function() {  /* magically emits JSON of MyObject */ }

我不介意从头开始写这个,但如果它已经存在,它会节省一些时间。这仅用于调试转储以记录自定义对象。

编辑:旧版本的犀牛,更新不是一个选项。没有字符串化()。

4

2 回答 2

3

你试过JSON.stringify()吗?它应该存在,即使在 Rhino 中也是如此。

于 2012-10-18T13:24:29.667 回答
1

JSON.stringify(MyObject) 应该可以解决问题。如果你没有这个功能,在interwebs中寻找json2.js

链接:https ://github.com/douglascrockford/JSON-js

如果你想把它放在你的对象中,你可以添加一个这样的函数:

MyObject.prototype.toString= function () {
    return JSON.stringify(this);
}

通过这样做,您可以构建对象的子集并将其字符串化,而不是对象原型本身:

MyObject.prototype.toString = function () {
    var subset = {
    ...
    }
    return JSON.stringify(subset);
}

这是一篇关于如何将 .js 文件添加到 rhino 脚本的帖子

从 json许可证开始:特此免费授予任何人获得本软件和相关文档文件(“软件”)副本的许可,不受限制地处理本软件,包括但不限于使用权,复制、修改、合并、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。

软件应用于善而不是恶。

于 2012-10-18T13:24:47.310 回答