从RESTClient获得的结果中解析特定数据

时间:2013-10-03 23:50:00

标签: java selenium

我正在通过selenium IDE测试注册流程。我正在使用REST客户端获取数据并从获得的结果中提取特定信息(在我的代码ID中)。当我删除(对于删除方法)一大块代码并重复它直到我得到ID时,我得到Index Out of bound Exception。我的代码如下:

StringBuffer s = new StringBuffer(value)
for(int x=0; x<value.length()-9;){
   int m = s.indexOf(value, x);
   int n = s.indexOf("},");
   s.delete(m, n);
   x += n+1;
}

我必须删除大括号,直到找到其他ID中的特定ID。

谢谢, Java初学者

1 个答案:

答案 0 :(得分:3)

似乎该值在"},"中不包含s.indexOf("},")的任何字符,因此int n = s.indexOf("},");的返回值为-1,然后当您调用{{}时1}} s.delete(m, n);的值小于n,之后方法m异常,所以如果包含throw new StringIndexOutOfBoundsException()或者需要验证字符串value或者如果"},"

,您可以跳过删除

守则:

(n != -1 && m != -1)

我不知道 StringBuffer s = new StringBuffer(value); for (int x = 0; x < value.length() - 9;) { int m = s.indexOf(value, x); int n = s.indexOf("},"); if (n != -1 && m != -1) { s.delete(m, n); } x += n + 1; } value.length() - 9的逻辑是什么,顺便说一句,如果你需要解析Restful WebService,使用一些API(例如XML DOM库,XPP,JSON)会更好而且更简单,解析取决于XML或JSON的响应类型。