Использование JSON с Clojure в ATOM

Я использую Atom и Leiningen для программирования на Clojure для модуля университета. У меня есть вопрос, который требует от меня синтаксического анализа JSON, и я не совсем уверен, как его настроить, чтобы я мог использовать JSON с Atom.

Я прочитал здесь, что вам нужно добавить:

(ns example (:require [clojure.data.json :as json]))

Чтобы иметь возможность использовать JSON в вашем коде Clojure, я получаю эту ошибку:

FileNotFoundException Не удалось найти clojure/data/json__init.class или clojure/data/json.clj в пути к классам. clojure.lang.RT.load (RT.java:456)

Я предполагаю, что это как-то связано с тем, чтобы не добавлять его в качестве зависимости, как говорит ссылка на github. Но я не совсем уверен, как добавить зависимость к моему проекту ATOM. Может ли кто-нибудь объяснить, как я это сделаю?

Спасибо.


person broliverparker    schedule 02.01.2018    source источник
comment
Поскольку вы используете Leiningen, я предполагаю, что у вас есть файл project.clj в каталоге вашего проекта верхнего уровня. Вот куда пойдет зависимость.   -  person jas    schedule 02.01.2018
comment
каков код для добавления зависимости, если вы не возражаете, если я спрошу?   -  person broliverparker    schedule 02.01.2018
comment
Я совсем не против, смотрите ответ ниже.   -  person jas    schedule 02.01.2018


Ответы (2)


Зависимости попадут в ваш файл project.clj. Например.:

(defproject default "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [org.clojure/data.json "0.2.6"]])
person jas    schedule 02.01.2018

Импорта библиотеки в ваш код недостаточно, потому что ваш проект не знает, что вы собираетесь ее использовать. В вашем файле project.clj, который находится на корневом уровне папки вашего проекта, добавьте новую запись в вектор :dependencies следующим образом:

:dependencies [[org.clojure/clojure "1.7.0"]
               [org.clojure/data.json "0.2.6"]]

Теперь перезапустите реплику. Библиотека будет загружена и доступна в вашем коде.

Кстати, вы можете использовать новую структуру проекта с инструментами Clojure CLI, выпущенными вместе с Clojure 1.9. С новой структурой вы помещаете библиотеки, которые хотите использовать, в специальный файл deps.edn:

{:deps
 {org.clojure/data.json {:mvn/version "0.2.6"}}}

Теперь запустите команду cli, которая запустит repl с встроенной библиотекой json. Дополнительную информацию см. на странице документации.

person Ivan Grishaev    schedule 02.01.2018