--- title: "GeoJSON 坐标必须是数组——如何解决此 Elasticsearch 异常" date: 2026-03-17 lastmod: 2026-03-17 description: "当 GeoJSON 对象中的 'coordinates' 字段未格式化为数组时,会触发此错误。GeoJSON 要求坐标必须表示为数字数组。" tags: ["Elasticsearch", "GeoJSON", "坐标数组", "数据格式", "异常处理"] summary: " 版本: 8.2-8.2 简而言之,当 GeoJSON 对象中的 ‘coordinates’ 字段未格式化为数组时,会发生此错误。GeoJSON 要求坐标必须表示为数字数组。要解决此问题,请确保 ‘coordinates’ 字段是一个数字数组。例如,点要素的坐标应该像 [100.0, 0.0] 这样。如果您正在动态生成 GeoJSON,请检查您的代码以确保它为坐标生成数组。如果您正在手动创建 GeoJSON,请确保您遵循正确的语法。 日志上下文 # 日志 “GeoJSON ‘coordinates’ must be an array” 的类名是 GeoUtils.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: coordinates = new ArrayList<>(); while (subParser.nextToken() != Token.END_ARRAY) { coordinates.add(parseValidDouble(subParser; field)); } } else { throw new ElasticsearchParseException("GeoJSON 'coordinates' must be an array"); } } else if (TYPE.equals(field)) { if (subParser.currentToken() == Token.VALUE_STRING) { geojsonType = subParser.text(); } else { " --- > **版本:** 8.2-8.2 简而言之,当 GeoJSON 对象中的 'coordinates' 字段未格式化为数组时,会发生此错误。GeoJSON 要求坐标必须表示为数字数组。要解决此问题,请确保 'coordinates' 字段是一个数字数组。例如,点要素的坐标应该像 [100.0, 0.0] 这样。如果您正在动态生成 GeoJSON,请检查您的代码以确保它为坐标生成数组。如果您正在手动创建 GeoJSON,请确保您遵循正确的语法。 日志上下文 ----------- 日志 "GeoJSON 'coordinates' must be an array" 的类名是 [GeoUtils.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java coordinates = new ArrayList<>(); while (subParser.nextToken() != Token.END_ARRAY) { coordinates.add(parseValidDouble(subParser; field)); } } else { throw new ElasticsearchParseException("GeoJSON 'coordinates' must be an array"); } } else if (TYPE.equals(field)) { if (subParser.currentToken() == Token.VALUE_STRING) { geojsonType = subParser.text(); } else { ```