mirror of https://github.com/apache/lucene.git
added json.wrf, wrapper function: SOLR-56
git-svn-id: https://svn.apache.org/repos/asf/incubator/solr/trunk@465369 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1a12258057
commit
d2fbaf889f
|
@ -59,6 +59,9 @@ New Features
|
||||||
In the process, an init(NamedList) method was added to QueryResponseWriter
|
In the process, an init(NamedList) method was added to QueryResponseWriter
|
||||||
which works the same way as SolrRequestHandler.
|
which works the same way as SolrRequestHandler.
|
||||||
(Bertrand Delacretaz / SOLR-49 / hossman)
|
(Bertrand Delacretaz / SOLR-49 / hossman)
|
||||||
|
28. json.wrf parameter adds a wrapper-function around the JSON response,
|
||||||
|
useful in AJAX with dynamic script tags for specifying a JavaScript
|
||||||
|
callback function. (Bertrand Delacretaz via yonik, SOLR-56)
|
||||||
|
|
||||||
Changes in runtime behavior
|
Changes in runtime behavior
|
||||||
1. classes reorganized into different packages, package names changed to Apache
|
1. classes reorganized into different packages, package names changed to Apache
|
||||||
|
|
|
@ -41,17 +41,20 @@ class JSONWriter extends TextResponseWriter {
|
||||||
private Calendar cal;
|
private Calendar cal;
|
||||||
|
|
||||||
private String namedListStyle;
|
private String namedListStyle;
|
||||||
|
private String wrapperFunction;
|
||||||
|
|
||||||
private static final String JSON_NL_STYLE="json.nl";
|
private static final String JSON_NL_STYLE="json.nl";
|
||||||
private static final String JSON_NL_MAP="map";
|
private static final String JSON_NL_MAP="map";
|
||||||
private static final String JSON_NL_ARROFARR="arrarr";
|
private static final String JSON_NL_ARROFARR="arrarr";
|
||||||
private static final String JSON_NL_ARROFMAP="arrmap";
|
private static final String JSON_NL_ARROFMAP="arrmap";
|
||||||
|
private static final String JSON_WRAPPER_FUNCTION="json.wrf";
|
||||||
|
|
||||||
|
|
||||||
public JSONWriter(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) {
|
public JSONWriter(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) {
|
||||||
super(writer, req, rsp);
|
super(writer, req, rsp);
|
||||||
namedListStyle = req.getParam(JSON_NL_STYLE);
|
namedListStyle = req.getParam(JSON_NL_STYLE);
|
||||||
namedListStyle = namedListStyle==null ? JSON_NL_MAP : namedListStyle.intern();
|
namedListStyle = namedListStyle==null ? JSON_NL_MAP : namedListStyle.intern();
|
||||||
|
wrapperFunction = req.getParam(JSON_WRAPPER_FUNCTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void writeResponse() throws IOException {
|
public void writeResponse() throws IOException {
|
||||||
|
@ -65,7 +68,13 @@ class JSONWriter extends TextResponseWriter {
|
||||||
if (nl.size()>1 && nl.getVal(1) instanceof DocList && nl.getName(1)==null) {
|
if (nl.size()>1 && nl.getVal(1) instanceof DocList && nl.getName(1)==null) {
|
||||||
nl.setName(1,"response");
|
nl.setName(1,"response");
|
||||||
}
|
}
|
||||||
|
if(wrapperFunction!=null) {
|
||||||
|
writer.write(wrapperFunction + "(");
|
||||||
|
}
|
||||||
writeNamedList(null, nl);
|
writeNamedList(null, nl);
|
||||||
|
if(wrapperFunction!=null) {
|
||||||
|
writer.write(")");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void writeKey(String fname, boolean needsEscaping) throws IOException {
|
protected void writeKey(String fname, boolean needsEscaping) throws IOException {
|
||||||
|
|
Loading…
Reference in New Issue