gpt4 book ai didi

java - JDK6 脚本引擎中是否有 "native"支持 JSON?

转载 作者:行者123 更新时间:2023-11-30 11:59:04 26 4
gpt4 key购买 nike

我正在使用 JDK6 标准脚本。我需要存储和检索一些 JavaScript 对象,这些对象也包含 Java 对象到 JSON。我将 json2.js 加载到 ScriptENgine 中,如果对象都是在脚本引擎中创建的,则可以毫无问题地使用它。当我尝试使用自己的 Java 类时,出现了一些错误,例如“对象不支持 toJSON”错误。

我在 Java Scripting/Rhino 上下文中没有找到太多关于 JSON 的信息。

我做错了什么吗?达到要求的最佳方式是什么?

最佳答案

据我所知,rhino 不包含内置的 JSON 序列化功能。

您看到的错误可能是因为 json2.js 使用语句 typeof value.toJSON 来确定有问题的对象实现了它自己的序列化函数。在 JavaScript 对象上,失败的属性查找返回 undefined。在 Java 对象上,失败的成员查找会引发异常。

解决此问题的一种方法是修改 json2,使其遍历对象结构:

  1. 它检查每个有问题的值是从 JavaScript 基 Object 原型(prototype)还是从 Java Object 基类扩展的,并且
  2. 对 Java 和 JavaScript 对象实例应用不同的编码逻辑。

我不知道是否有人已经解决了通过反射将任意 Java 对象序列化为 JSON 的问题。如果是这样,那么这可能是一个很好的用途。

希望这对您有所帮助!

关于java - JDK6 脚本引擎中是否有 "native"支持 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com