当前位置:  开发笔记 > 前端 > 正文

地图文字必须包含偶数个表格

如何解决《地图文字必须包含偶数个表格》经验,为你挑选了1个好方法。

我正在尝试对需要json和秘密(:key)数据的Web服务进行处理

(ns fdsfdsfds.core
  (:require [clj-http.client :as client])
  (:require [clojure.data.json :as json]))


(defn -main [& args]
  (client/post "https://fsdfdsfd.com/api/fdsfds" 
    {:body {(json/write-str {:key "fdsfdsfdsfd"})}}))

我有一个错误:

Exception in thread "main" java.lang.RuntimeException: Map literal must contain an even number of forms 

但是,它们的数量是偶数.



1> Mark Fisher..:

问题出在这里:

 {:body {    (json/write-str {:key "fdsfdsfdsfd"})     }}
             ^-- single item       missing value? --^
        ^----- this is a map too

没有与函数调用配对.

:body有一个地图作为一种价值,但你只有一个函数在那里,它的价值不是一个可能的密钥,或者如果这是关键,有没有它的价值.

您可能想要删除外部地图括号并离开:

{:body (json/write-str {:key "fdsfdsfdsfd"})}

编辑后编辑:

你问为什么网站上的例子正在使用地图.仔细查看正在使用的值,它是一个字符串

(client/post "url://site.com/api"
  {:basic-auth ["user" "pass"]
   :body "{\"json\": \"input\"}"
   ;; ...

地图由键/值对组成.首先是

key = :basic-auth, value = ["user" "pass"]

这里的值是一个数组.

第二行是:

key = :body, value = "any old string"

在这种情况下,字符串是一个转义映射,与调用返回的映射相同 json/write-str

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有