Xpages 从Java自定义rest控件中的多值字段获取JSON

Xpages 从Java自定义rest控件中的多值字段获取JSON,xpages,Xpages,我有一个用Java编写的自定义rest控件。对于字符串字段,一切都可以正常工作,但对于多值字符串字段则不行。我的代码返回 “[Value1,Value2,Value3…]”。注意:值周围没有逗号。在网页上,输出如下所示: 如果我能在值周围找到逗号,前端框架就可以轻松地解析它 我试图解析字段中的值并正确格式化,但似乎无法正确格式化 第一组代码适用于字符串。第二种是尝试使用多值字段 任何帮助都将不胜感激 writer.startProperty("chgTitle"); writer.

我有一个用Java编写的自定义rest控件。对于字符串字段,一切都可以正常工作,但对于多值字符串字段则不行。我的代码返回

“[Value1,Value2,Value3…]”。注意:值周围没有逗号。在网页上,输出如下所示:

如果我能在值周围找到逗号,前端框架就可以轻松地解析它

我试图解析字段中的值并正确格式化,但似乎无法正确格式化

第一组代码适用于字符串。第二种是尝试使用多值字段

任何帮助都将不胜感激

writer.startProperty("chgTitle");
      writer.outStringLiteral(String.valueOf(columnValues.get(0)));
writer.endProperty();

writer.startProperty("plpAffected");    
                Object tmpObj = columnValues.get(5);
                if (tmpObj instanceof Vector) {
                       String[] copyArr = new String[((Vector) tmpObj).size()];
                       ((Vector) tmpObj).copyInto(copyArr);
                       writer.outStringLiteral(String.valueOf(copyArr));
                } else {
                }
writer.endProperty();

我建议采用稍微不同的方法。我喜欢强迫我的JSON结构在任何可能出现多值情况的地方使用数组。看起来你也在使用,所以我假设

以下是我将如何攻击它:

writer.startProperty(“chgTitle”);
writer.outStringLiteral(String.valueOf(columnValues.get(0));
writer.endProperty();
作者:startProperty(“PLPAEffected”);
向量tmpVec=Util.getValueAsVector(columnValues.get(5));
作者:startArray();
用于(对象ob:tmpVec){
writer.startArrayItem();
//假设字符串内容
writer.outStringLiteral(String.valueOf(ob));
writer.endArrayItem();
}
writer.endArray();
writer.endProperty();
为了包装返回的
列值
,我使用了。它检查
Vector
ArrayList
,我碰巧几乎只使用它;如果不是,则将其推入新的
向量中。这个方法看起来是这样的

公共静态向量getValueAsVector(对象obj){
if(obj instanceof java.util.Vector){
返回(向量)对象;
}else if(数组列表的obj实例){
列表o=(列表)对象;
向量tmpVec=新向量();

对于(int i=0;iOne轻微更改:使用“String.valueOf(obj)”代替“(String)obj”-它将适用于所有数据类型,并且在obj可能为null时不会爆炸。