从prolog中的json对象获取值

时间:2016-10-15 11:19:29

标签: json prolog swi-prolog

我有两个问题。 如何在prolog中获取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).

1 个答案:

答案 0 :(得分:2)

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

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}