Question

Je suis en train d'utiliser JSON-lib, mais je ne peux pas le faire fonctionner sans NoClassDefFoundError.Voici le code:

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());
    }
}

Et la commande de compilation:

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

Et la commande à exécuter:

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

J'ai aussi essayé avec les communes-lang3.3, ce qui me donne des erreurs différentes.Je pense qu'il pourrait être une version de la chose.

Comment puis-je compiler et exécuter un exemple simple avec cette bibliothèque?

Si il y a une meilleure bibliothèque sans fou dépendances, j'aimerais en entendre parler.J'ai essayé de Douglas Crockford JSON-Java, mais j'ai eu des problèmes similaires.

J'aurais besoin de quelque chose avec un libéral de la licence, comme Apache 2, le MIT ou similaire.

Était-ce utile?

La solution

La réponse que vous cherchez est là dans le fichier POM https://repository.onatype.org/service/local/repositories/central-proxy/content/net/sf/json-lib/json-Lib / 2.4 / JSON-LIB-2.4.POM

Vous avez besoin des dépendances suivantes:

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

en option

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

Le site Web du projet (http://json-lib.sourceforge.net/) répertorie également ces exigences.

Il est très probable que Commons-Lang-2.6 fonctionnera avec JSON-LIB 2.4, mais je ne peux pas garantir la même chose pour les Commons-Lang-3.x.

Autres conseils

Jetez un coup d'œil à Google Gson à la place:

  • License Apache
  • Aucune autre dépendance
  • Utilisation simple

    Ceci est exemple:

    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));
        }
    }
    

    et voila!

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top