这是我在stackoverflow中的第一个问题所以,请耐心等待.
我想要构建一个简单的Prolog api,它接收json帖子并在处理完之后发送另一个json帖子.我发现这个代码接收json:
handle(Request) :-
http_read_json_dict(Request, DictIn),
compute(DictIn, DictOut),
reply_json(DictOut).
我假设compute是一个自定义谓词,用于测试目的是测试(D,D).
问题是,当我尝试在swi-prolog中测试句柄(Request)时,我得到错误消息ERROR:atom_codes / 2:参数没有被充分实例化或者我得到了错误.
我假设我只需要在请求中传递一个json,但它不起作用.我也尝试用邮件发送一个帖子,在主体中有一个json文件(raw和application / json),但是我得到了一个超时,其中eh..yea …
我的问题是我在Request中写什么以便它正确地实例化它?
如果这是一个糟糕/ noobie问题,请提前感谢并抱歉,但swi-prolog文档很糟糕,我无法在任何地方找到答案.
最佳答案 还有一些JSON读者/作者:
这个模块采用原子并通过DCG实现:
https://github.com/khueue/prolog-json/tree/master/src
该模块通过ISO流指令编码:
https://gist.github.com/jburse/63986bf525784d6d8cf99db132538d67#file-json_io-p
这两种方法都不需要Prolog dicts,适用于各种Prolog系统.