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