solr json用java解析
我正在通过solr进行搜索。它给了我json的回应。如下所示:solr json用java解析
{response
{numfound:# , docs{
[
{
id="#"
model="#"
}
{
id="#"
model="#"
}
]
}
}
我想从中只提取id并从它们中创建java数组列表。
有人可以告诉我如何在编码语言中做到这一点吗?
问题:如何从儿子字符串中提取id并将其转换为java数组列表如果我在java中使用hashmap或objectmapper?
感谢名单
如果你想转换成Java对象,你可以使用Solr客户端工作Solrj
Solrj会给你和容易的选择查询的Solr和读取XML转换成Java对象
对于JSON你可以使用jackson库来解析Solr响应。
正如Jayendra指出的,如果您使用Java查询Solr,则可以使用SolrJ。由于XML解析开销,我不建议使用XML作为响应格式。 SolrJ支持java二进制对象编码(使用commons-codec)开箱即用,默认情况下在查询。
要在更新使用它,你必须将它设置使用
server.setRequestWriter(new BinaryRequestWriter());
手动,你必须在服务器上启用了BinaryUpdateHandler过,使用:
<requestHandler name="/update/javabin" class="solr.BinaryUpdateRequestHandler" />
所以,这样做。结果是什么?我的意思是在我的问题,通过这样做,我会得到json格式的查询结果?我如何才能提取ID(上面提到的例子在我的问题)。 – user1964901 2013-02-11 02:02:39
这是一个使用Gson库读取数据的小程序。
@Test
public void testRead() throws IOException {
final String testUrl = "http://localhost:8983/solr/collection1/select?q=*%3A*&wt=json&indent=true";
String out = new Scanner(new URL(testUrl).openStream(), "UTF-8").useDelimiter("\\A").next();
SolrResult result = new Gson().fromJson(out, SolrResult.class);
List<String> ids = new ArrayList<String>();
for (Doc doc : result.response.docs) {
ids.add(doc.id);
}
System.err.println(ids);
}
它采用以下三个小班作为响应的Java表示:
public class SolrResult {
public Response response;
}
class Response {
public int numFound;
public int start;
public List<Doc> docs;
}
class Doc {
public String id;
}
我希望这有助于。
如何使用jackson库从json中获取id作为arraylist(如上例中所述)? – user1964901 2013-02-11 02:05:23
http://www.sivalabs.in/2011/03/json-processing-using-jackson-java-json.html – Jayendra 2013-02-11 09:57:37