Windows:在命令行上使用json数据进行卷曲

时间:2015-02-21 17:00:20

标签: json curl elasticsearch

我在Windows提示符下运行以下命令:

curl -XPUT http://127.0.0.1:9200/test-index/test-type/_mapping?pretty=true -d '{"test-type": {"properties": {"name": {"index": "analyzed", "term_vector": "with_positions_offsets", "boost": 1.0, "store": "yes", "type": "string"}}}}'

我收到以下错误:

{
  "error" : "ElasticsearchParseException[Failed to parse content to map]; nested: JsonParseException[Unexpected character (''' (code 39)): expected a
valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: org.elasticsearch.common.compress.lzf.LZFCompressedStreamInput@45
4ed1d2; line: 1, column: 2]]; ",
  "status" : 400
}

我搜索了解决方案并找到了替代方法,例如将json数据放入文件中,但由于某些原因我无法使用它。

谢谢!

2 个答案:

答案 0 :(得分:20)

Windows cmd不支持带单引号的字符串。使用"并使用\"转义内部版本。

答案 1 :(得分:6)

  

“我搜索了解决方案并找到了替代方法,例如将json数据放入文件中,但由于某些原因我无法使用它”

这应该有效,临时hello.json。需要@

c:\temp>curl -v -X PUT  \ 
             --data "@hello.json"  \
             -H "Content-Type:application/json"  \
             http://localhost:8080/api/myresource