我的代码:
import std/[asyncdispatch, httpclient, json]
proc asyncProc(): Future[string] {.async.} =
var client = newAsyncHttpClient()
try:
let response = await client.getContent("https://randomuser.me/api/")
result = parseJson(response).getStr()
finally:
client.close()
proc main() {.async.} =
let results = await asyncProc()
echo results
waitFor main()
使用以下方法编译:
nim c -r --verbosity:0 -d:ssl fetch.nim
终端中没有任何回显,我到底做错了什么?
JsonNode
是一个对象变体。它提供诸如 getStr()
之类的 getter 来返回给定 JsonNode
所持有的值 或 预期类型的默认值。
在您的示例中,以下内容成立:
let result = parseJson(response)
assert result.kind == JObject
assert result.getStr() == ""
您可以使用
JsonNode
运算符将 $
转换为字符串:$result
。
例如:
let response = await client.getContent("https://randomuser.me/api/")
result = $parseJson(response)