2016-10-15 4 views
0

Ich habe zwei Fragen. Wie kann ich Wert von JSON-Objekt in Prolog erhalten? Wie kann ich Liste der Lösung aus Prädikat in Form von JSON senden?Get Wert von Json-Objekt in Prolog

Mein Code:

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). 

Antwort

2

Ich nehme an, Sie SWI Prolog verwenden. Ihr Code schlägt vor, dass Sie JSON zu SWI Prolog dicts konvertieren möchten. Sie müssen also

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

zu

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

oder einfach http_read_json_dict/2 können sich ändern. Beachten Sie, dass Request eine PUT- oder POST-Anfrage sein muss, sonst werfen diese Prädikate eine domain_error(Type, Term).

Sie können DictIn ausdrucken, um zu sehen, welche Felder Sie extrahieren möchten.

Für die Antwort verwenden Sie reply_json_dict/{1, 2}.