簡體   English   中英

如何在謂詞中使用序言字典的鍵值?

[英]How to use the key values of a prolog dict in a predicate?

我有一個簡單的問題,很難找到答案。

我正在構建一個讀取json的api,目前它已成功通過http_read_json_dict將json轉換為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)

非常感謝您的幫助!

不知道細節,沒有與您使用的服務器類似的服務器設置...但是

?- 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周圍的方括號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM