我有一个简单的问题,我在寻找答案时遇到了很多麻烦。
我正在构建一个读取json的api,此刻它成功地将json转换为带有http_read_json_dict的dict。问题是,我不知道如何访问dict中的属性并在谓词中使用该数据。我试着遵循swi-prolog
文件,但无济于事......你们知道一种方式吗?
我试过这个来测试读取dict的内容,但是我收到"key_value expected, found a dict"
错误。请不要把我烧死:
json包含:[{"task":"learnprolog","dayofmonth":2}]
http_read_json_dict(Request, JSONIn,[json_object(term)]),
X = JSONIn,
format(user_output,"task is: ~p~n",[X.task]),
JSONOut=JSONIn.
但我真的希望做类似的事情:
predicate(X):- X.dayofmonth==2,doSomething(X.task);doSomethingElse(X.task)
。
非常感谢您的帮助!
答案 0 :(得分:0)
如果没有与您正在使用的服务器设置类似的服务器设置,则不确定细节,但
?- open_codes_stream(`[{"task":"learnprolog","dayofmonth":"2"}]`,S),json_read_dict(S,[J]),close(S),write(J.dayofmonth).
2
S = <stream>(0x7f5f14304dd0),
J = _G15591{dayofmonth:"2", task:"learnprolog"}.
请注意 J
周围的方括号