KRL: анализ строки как JSON - PullRequest
3 голосов
/ 28 марта 2011

После использования http:get() я получаю обратно строку из pick, содержащую «содержимое» из хэша:

response = http:get(webservice_url, {"key1": value1, "key2": value2});
json_resp = response.pick("$..content");

Однако, поскольку json_resp является строкой, а не фактическим JSONобъект, я не могу выполнить команду как это:

value = json_resp.pick("$..string");

Есть ли способ сообщить KRL, что я хочу проанализировать json_resp как JSON?eval() или что-то, возможно?

1 Ответ

4 голосов
/ 28 марта 2011

Оператор decode() делает то, что вы хотите.Он работает со строкой JSON, пытаясь преобразовать ее в собственный объект KRL.Обратите внимание, что KRL также имеет encode(), который работает с собственным объектом KRL и возвращает строковое представление JSON для этого объекта.

response = http:get(webservice_url, {"key1": value1, "key2": value2});
json_resp = response.pick("$..content").decode();
value = json_resp.pick("$..string");
// will work since json_resp is now a native KRL object
...