Базовый пример JSON-lib - PullRequest
       7

Базовый пример JSON-lib

1 голос
/ 26 января 2012

Я пытаюсь использовать JSON-lib, но не могу запустить его без NoClassDefFoundError.Вот код:

import net.sf.json.*;

public class hello {
    public static void main(String[] args) {
        String settings = "{\"hello\": \"world\"}";

        JSONObject obj = (JSONObject)JSONSerializer.toJSON(settings);
        System.out.println(obj.toString());
    }
}

И команда для компиляции:

javac -cp lib/json-lib-2.4-jdk15.jar hello.java

И команда для запуска:

java -cp .:lib/json-lib-2.4-jdk15.jar:lib/commons-lang-2.4.jar hello

Я также пробовал с помощью общих-lang3.3, который дает мне разные ошибки.Я думаю, что это может быть версия.

Как мне скомпилировать и запустить простой пример с этой библиотекой?

Если есть лучшая библиотека без сумасшедших зависимостей, я хотел бы услышать об этом,Я пробовал JSON-Java Дугласа Крокфорда, но у меня были похожие проблемы.

Мне нужно что-то с либеральной лицензией, например, Apache 2, MIT или подобное.

Ответы [ 2 ]

3 голосов
/ 26 января 2012

Ответ, который вы ищете, находится прямо в файле POM https://repository.sonatype.org/service/local/repositories/central-proxy/content/net/sf/json-lib/json-lib/2.4/json-lib-2.4.pom

Вам нужны следующие зависимости:

commons-beanutils-1.8.0
commons-collections-3.2.1
commons-lang.2.5
commons-logging-1.1.1
ezmorph-1.0.6

необязательно

xom.1.1 (if serializing from/to XML)
oro-2.0.8 (if using the jdk13 version of the library)

Проектwebsite (http://json -lib.sourceforge.net /) также перечисляет эти требования.

Весьма вероятно, что commons-lang-2.6 будет работать с json-lib 2.4, однако я не могу гарантировать то же самое для commons-lang-3.x.

2 голосов
/ 26 января 2012

Взгляните на Google Gson вместо:

  • Лицензия Apache
  • Никаких других зависимостей
  • Простое использование

Это пример:

import com.google.gson.Gson;

class Foo {
    private String hello;

    public String toString() {
        return "hello='" + hello + "'";
    }
}

public class hello {
    public static void main(String[] args) {
        String text = "{\"hello\": \"world\"}";

        Gson gson = new Gson();
        Foo foo = gson.fromJson(text, Foo.class);

        System.out.println(foo.toString());
        System.out.println(gson.toJson(foo));
    }
}

И вуаля!

$ javac -cp lib/gson-2.0.jar hello.java
$ java -cp .:lib/gson-2.0.jar hello
hello='world'
{"hello":"world"}
$
...