它不应该是一个如此困难的障碍,但我只是看不出如何克服这个障碍。我想在服务器上使用ArrayObject和ObjectObject对象生成JSON结构,并将其用作服务器端数据源(工作)和客户端。如何轻松地将数据从服务器传输到客户端?
我在ScriptBlock中尝试使用toJson,但它失败了(由于Java错误,如果我没记错的话,有FBSUndefined的东西)。我也在jsonRpcService控件中尝试使用toJson,但是出现了同样的错误。我会尝试找到一些其他方法来对我拥有的对象进行字符串化,但这就是它。我可以进行Ajax调用,但这将是最后的解决方案。
您是否有其他/更好的方法将服务器对象传输到浏览器?
谢谢!
答案 0 :(得分:3)
最简单的方法是将代码包装到服务bean中并使用自定义Rest服务(它是ExtLib中的控件)。我写了一篇关于步骤的文章:
如果您只使用SSJS ......方法仍然有效。您可以使用SSJS在控件内编写响应。
答案 1 :(得分:3)
从Java,我建议使用com.ibm.commons.util.io.json.JsonJavaArray
和com.ibm.commons.util.io.json.JsonJavaObject
。它们就像地图/列表一样工作,并且可以包含这些接口(因此我通过.put(myKey, myArrayList)
将ArrayList添加到JsonJavaObject中)。例如,要输出作为输出脚本块的JSON,只需调用JsonJavaObject.toString()
或JsonJavaArray.toString()
。这是我即将在图表上发布的博客文章中展示的解决方案。
答案 2 :(得分:1)
获取 FBSUndefined 错误表示您要创建明确的JSON的对象包含“未定义”值。例如,如果将对象的属性设置为等于不包含此属性的另一个对象的属性,则会发生这种情况。
IMO您的数据是问题,而不是您想要创建JSON的方式。您应该首先检查生成该对象的代码。如果找不到导致问题的部分,可以编写一个辅助函数来迭代遍历该对象并搜索未定义的值。