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

时间:2018-10-26 07:41:21

标签: javascript json object bpm

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

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

我正在使用BPM帮助程序工具包将json转换为TW Object

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

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

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

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

在BPM-JSON-Utils.js或json2.js文件中是否有任何变通办法或调整?

1 个答案:

答案 0 :(得分:1)

首先要注意的是,在我的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,看看我们是否可以到达那里,但是那也失败了。

我的建议是将原始JSON返回给调用方,并让它们调用上面的解析行。我假设调用者期望返回特定类型,这意味着变量不是抽象类型,因此解析调用应该可以工作。

-安德鲁·派尔(Andrew Paier)