I am new to Elasticserach and Jackson Json. There is a simple query(search index by a country) I try to use JsonGenerator,
"{\n" +
" \"query\" : {\n" +
" \"match\": { \"exporting_country\":\"" + countryCode + "\"} \n" +
"} \n"+
"}"
JsonGenerator code,
JsonGenerator jGenerator = jfactory.createGenerator(outputStream);
jGenerator.writeStartObject();
jGenerator.writeFieldName("query");
jGenerator.writeStartObject();
jGenerator.writeFieldName("match");
jGenerator.writeStringField("exporting_country", countryCode);
jGenerator.writeEndObject();
jGenerator.writeEndObject();
jGenerator.close();
it throws out an error:
Can not write a field name, expecting a value
You're missing a call to writeStartObject
:
JsonGenerator jGenerator = jfactory.createGenerator(outputStream);
jGenerator.writeStartObject();
jGenerator.writeFieldName("query");
jGenerator.writeStartObject();
jGenerator.writeFieldName("match");
jGenerator.writeStartObject(); <--- add this
jGenerator.writeStringField("exporting_country", countryCode);
jGenerator.writeEndObject(); <--- and this
jGenerator.writeEndObject();
jGenerator.writeEndObject();
jGenerator.close();