有下面几种方式生成一个JSON文档:
在内部,所有类型都会转换成 byte[] 类型。因此,如果你的对象已经是这种格式了,那么就直接使用它吧。 当然 jsonBuilder 是一个高度优化的工具,你可以使用它来直接构造 byte[]
如果你使用过json格式,那么这里对你来说没什么困难的, 唯一需要注意的是你需要通过Date Format 对日期进行格式化。
String json = "{" +
"\"user\":\"kimchy\"," +
"\"postDate\":\"2013-01-30\"," +
"\"message\":\"trying out Elasticsearch\"" +
"}";
Map是一个键值对的集合,它可以表现为一个JSON结构:
Map<String, Object> json = new HashMap<String, Object>();
json.put("user","kimchy");
json.put("postDate",new Date());
json.put("message","trying out Elasticsearch");
你可以使用Jackson将你的Bean序列化成JSON。 请将Jackson Databind加入你的项目中。 然后你就可以使用 ObjectMapper 来序列化你的Bean了:
import com.fasterxml.jackson.databind.*;
// instance a json mapper
ObjectMapper mapper = new ObjectMapper(); // create once, reuse
// generate json
byte[] json = mapper.writeValueAsBytes(yourbeaninstance);
ES提供了一个内置的工具来帮助你生成JSON内容:
import static org.elasticsearch.common.xcontent.XContentFactory.*;
XContentBuilder builder = jsonBuilder()
.startObject()
.field("user", "kimchy")
.field("postDate", new Date())
.field("message", "trying out Elasticsearch")
.endObject()
这里需要注意,你也可以使用 startArray(String) / endArray() 方法代替 startObject() / endObject() 方法来添加一个数组。 顺便说一下,field 可以接受很多对象类型。你可以直接传一个number,date 或者是其它 XContentBuilder 类型的对象。
如果你想查看生成的JSON内容,你可以使用 string() 方法:
String json = builder.string();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )