【发布时间】:2013-12-18 10:10:21
【问题描述】:
在我的 jsp 应用程序中,我调用了一个 Web 服务,我从中获取 json fromat 中的数据,如下所示
获取json数据的代码是
String recv ="";
String recvbuff ="";
URL jsonpage = new URL("http://107.109.6.236:3000/api/tokens.json");
URLConnection urlcon = jsonpage.openConnection();
BufferedReader buffread = new BufferedReader(new InputStreamReader(urlcon.getInputStream()));
while ((recv = buffread.readLine()) != null)
recvbuff += recv;
buffread.close();
下面是recvbuff输出。
[{"id":1,"session_id":"11611fba0cd57f2f0e62acf746d7f60b","link":"","created_at":"2013- 12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"},
{"id":2,"session_id":"848960680b00502fc3e4c9cf0652a5fe","link":"","created_at":"2013-12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"},
{"id":3,"session_id":"101155b2c4cef0034804ed9b6806422e","link":"","created_at":"2013-12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"},
{"id":4,"session_id":"ec1373a7bdd291f60266ab6f8445c23b","link":"","created_at":"2013-12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"},
{"id":5,"session_id":"3eb8b185f0cbd71ff004b30453c90f54","link":"","created_at":"2013-12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"}]
我有一个 token_id,例如 3eb8b185f0cbd71ff004b30453c90f54,它将与 session_id 之一匹配。如果与确切的字符串不匹配,它将重定向到错误页面。
为此,我使用以下代码。
if(recvbuff.contains(token_id)){
out.println("<br>Hello <b>"+token_id+"</b>! done");
}else{
response.sendRedirect(redirectURL);
}
如何在jsp页面中得到精确匹配?
【问题讨论】:
-
recvbuff是包含 JSON 字符串的字符串吗?还是解析了 JSON 的 JSON 对象?不清楚应该如何对对象recvbuff进行比较,因为我们不知道该对象是什么! -
@DanTemple recvbuff 是一个包含 JSON 字符串的字符串
-
也许添加如何制作
recvbuff的代码会有所帮助。听起来它可能是包含 JSON 数组中所有对象的字符串,也可能是包含数组中单个 json 对象的字符串。在第一种情况下,如果 token_id 在数组中的任何位置,您将始终匹配。在第二种情况下,您需要遍历数组并单独检查每个字符串。 -
@DanTemple
recvbuff代码已添加。