繁体   English   中英

如何将JavaScript服务器端的数据转换为json对象和数组?

[英]how can i convert my data in javascript server side to json object and array?

我正在使用xpages和javascript服务器端,我想将字段转换为json格式,然后解析此dat,然后将它们放在网格中,问题是这些字段可以包含值:一个项目或一个列表我怎么能将它们转换为json吗? 这是我的代码:

this.getWFLog = function ()
    {
        var wfLoglines = [];
        var line = "";

        if (this.doc.hasItem (WF.LogActivityPS) == false) then 
            return ("");

        var WFLogActivityPS  = this.doc.getItem ("WF.LogActivityPS"); 
        var WFActivityInPS   = this.doc.getItem ("WFActivityInPS");
        var WFActivityOutPS  = this.doc.getItem ("WFActivityOutPS");
        var WFLogDecisionPS = this.doc.getItem ("WF.LogDecisionPS");
        var WFLogSubmitterPS = this.doc.getItem ("WF.LogSubmitterPS");
        var WFLogCommentPS      = this.doc.getItem ("WF.LogCommentPS");
        var WFLogActivityDescPS = this.doc.getItem ("WF.LogActivityDescPS");
        var Durr =((WFActivityOutPS-WFActivityInPS)/3600);
        var json= {
                    "unid":"aa",
                    "Act":WFLogActivityPS,
                    "Fin":WFActivityOutPS,
                    "Durr":Durr,
                    "Decision":WFLogDecisionPS,
                    "Interv":WFLogSubmitterPS,
                    "Instruction":WFLogActivityDescPS, 
                    "Comment":WFLogCommentPS
            }




        /*
         * 
         * var wfdoc = new PSWorkflowDoc (document1, this);
histopry = wfdoc.getWFLog();
var getContact = JSON.parse(histopry );
 */ }

小心。 您的代码正在浪费内存。 您创建的每个Notes对象(如项目)都需要在使用后调用.recycle()进行回收。

有几种方法可以解决此问题。 最根本的方法是部署提供方便的document.toJson()函数的OpenNTF Domino API(ODA)。

不太激进:创建一个辅助bean并将代码放入其中。 我将使用文档和字段名称数组作为参数来调用方法。 这将允许您遍历它。

使用com.ibm.commons.util.io.json中的Json帮助器方法,它们将确保所有转义操作均已正确完成。 您需要确定是否真的要混合使用数组和对象-尤其是同一字段在不同文档中可以是一个字段还是另一个字段。 如果要平放它们,请使用item.getText(); 否则使用item.getValues() Jesse有一篇很好的文章,详细介绍了XPages中的JSON 去看看吧。 希望能有所帮助。

如果输入字段包含要转换为数组的多个值,请使用split方法:

var WFLogActivityPS = this.doc.getItem("WF.LogActivityPS").split(",")
// input : A,B,C --> result :["A","B","C"] 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM