将 JSON 转换为 ANY 类型的 TW 对象

Convert a JSON to TW Object of type ANY

使用 IBM BPM 8.6 我有一个 JSON 如下:

tw.local.person = "{\"firstName\":\"Ahmed\",\"job\":\"Doctor\"}";

我正在使用 BPM 帮助工具包将 json 转换为 TW 对象

tw.local.outputObject = BPMJSON.convertJSONToTw(tw.local.person); 

结果:
如果 outputObject 的类型为 Person(具有 firstName 和 job 属性),它会起作用并创建对象。

如果 outputObject 的类型是 any,则它不起作用

如何在 any 对象中获取输出?

BPM-JSON-Utils.js 或 json2.js 文件中有任何解决方法或调整吗?

首先我要注意的是,在我的 8.6 安装中,调用 JSON.parse() 就可以了,因此您不需要社区工具包。值得注意的是,该方法似乎遇到了与您尝试使用 ANY 或 Record 时看到的错误相同的错误。

根据错误,基础 TWObject 似乎不允许您引用未显式声明的成员字段。在我的测试中,使用 JSON 字符串 -

var json='{ "name" : "Andrew", "value" : "42"}';

我试过了-

tw.local.myNvp = JSON.parse(json);
tw.local.myAny = JSON.parse(json);

第一个从系统数据工具包解析为 "NameValuePair" 类型变量的方法有效。第二个试图解析为 "ANY" 失败。我也尝试使用 Record 看看我们是否可以到达那里,但也失败了。

我的建议是 return 原始 JSON 给调用者,让他们调用上面的解析行。我假设调用者期望返回特定类型,这意味着变量不是抽象类型,因此解析调用应该有效。

-安德鲁·派尔