【发布时间】:2018-08-22 10:42:03
【问题描述】:
我正在尝试制作一个迭代 Redis 数据库的 Java 程序,以验证键值;如果它是一个有效的 JSON,则提取到一个单独的模式中(对此还没有做任何事情);否则,什么也不做,继续搜索其他键。
这是我的功能代码:
Jedis jedis = new Jedis("localhost");
ScanResult<String> scanResult = jedis.scan("0");
List<String> keys = scanResult.getResult();
String nextCursor = scanResult.getStringCursor();
JSONParser parser = new JSONParser();
int counter = 0;
while(true) {
if(nextCursor.equals("0")) {
break;
}
scanResult = jedis.scan(nextCursor);
nextCursor = scanResult.getStringCursor();
keys = scanResult.getResult();
for(counter = 0; counter <= keys.size(); counter++) {
try {
JSONObject json = (JSONObject) parser.parse(keys.get(counter).toString());
} catch (ParseException e) {
e.printStackTrace();
}
}
System.out.println(keys = scanResult.getResult());
}
jedis.close();
我在使用 JSON Parse 时遇到了麻烦(如果我正确使用他,我会遇到问题),因为我认为我只得到了 KEY NAMES(而不是它们的值)。
我尝试使用Map<String, String> = scanResult.getResult() 而不是List<String>,但它指出了类型不匹配的问题。
似乎很容易解决,但我有点卡在这一点上...欢迎任何可以提供帮助的提示,谢谢。
P.S.:我不能使用 ReJSON 之类的模块,必须使用原生 redis 函数。
【问题讨论】:
标签: java json database redis jedis