将 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 给调用者,让他们调用上面的解析行。我假设调用者期望返回特定类型,这意味着变量不是抽象类型,因此解析调用应该有效。
-安德鲁·派尔
使用 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 给调用者,让他们调用上面的解析行。我假设调用者期望返回特定类型,这意味着变量不是抽象类型,因此解析调用应该有效。
-安德鲁·派尔