2016-10-15 39 views
0

我有两个问题。 如何在序言中获得json对象的值? 如何以json的形式发送谓词解决方案列表?从序言中的json对象获取值

我的代码:

handle(Request) :- 
    format(user_output,"I'm here~n",[]), 
    http_read_json(Request, DictIn,[json_object(term)]), 
    %beat(DictIn.name,DictIn.move,X), 
    %get list of solution of beat in to JSON and keep it in DictOut 
    reply_json(DictOut). 

回答

2

我假设你正在使用SWI Prolog的。您的代码建议您要将JSON转换为SWI Prolog字典。所以,你需要改变

http_read_json(Request, DictIn, [json_object(term)])

http_read_json(Request, DictIn, [json_object(dict)])

,或者你可以只使用http_read_json_dict/2。请注意,Request必须是PUT或POST请求,否则这些谓词将抛出domain_error(Type, Term)

您可以打印出DictIn以查看您想要提取的字段。

对于使用reply_json_dict/{1, 2}