使用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文件中是否有任何变通办法或调整?
答案 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)