【问题标题】:{"error":"MapperParsingException[Malformed content, must start with an object]","status":400}{"error":"MapperParsingException[格式错误,必须以对象开头]","status":400}
【发布时间】:2015-03-29 18:28:50
【问题描述】:

我尝试使用命令插入我的 JSON 文件

curl -XPOST 'http://localhost:9200/test/sec5/1' -d @quality.json

[
  {
    "Provider ID":"###",
    "Hospital Name":"## #### ###",
    "Address":"## ## ## ## ",
    "City":"###",
    "State":"IL",
    "ZIP Code":##,
    "County Name":"$$$$",
    "Phone Number":###,
    "Condition":"## ## ###",
    "Measure ID":"AMI_10",
    "Measure Name":"## ## ##",
    "Score":"98",
    "state_score":99,
    "nat_score":98,
    "percent_s_score":"98.989898989899",
    "percent_n_score":"100",
    "Sample":"101",
    "patient errors":"2.02",
    "Footnote":"",
    "Measure Start Date":"4/1/2013",
    "Measure End Date":"12/31/2013"
  },
  {
      "Provider ID":"###",
    "Hospital Name":"## #### ###",
    .................

    "Measure Start Date":"4/1/2013",
    "Measure End Date":"12/31/2013"
  },

...........
.........

]

我的 JSON 格式有什么问题?提前谢谢你。

【问题讨论】:

    标签: json elasticsearch


    【解决方案1】:

    错误消息清楚地说明了这里发生了什么。

    {“error”:“MapperParsingException[Malformed content, 必须以对象开头]”,“status”:400}

    这意味着您必须用{...} 包装整个内容 你也不能这样做:

    { [...] }
    

    因为它不是有效的 JSON 文档。 JSON 对象需要采用名称-值对格式,例如:

    { "data": [...] }
    

    但是随后它将被视为一个要索引的文档,我想这不是您所期望的。您正在尝试一次索引多个文档。

    基本上你不能这样做。对于一个查询中的多个“操作”,您应该使用Bulk API。它比一个简单的查询要复杂一些,所以我不会在这里解释它。只需阅读文档。

    【讨论】:

    • 我在文件的开头附加了 { 和 }。得到了错误 {"error":"MapperParsingException[failed to parse];nested: JsonParseException[Unexpected character ('[' (代码 91)):在 [Source: [B@686d4e; line: 1, column: 3]] 处需要有效的名称字符(对于未引用的名称)或双引号(对于引用的名称)来开始字段名称\n; ","状态":400}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2020-10-31
    相关资源
    最近更新 更多