Cómo ejecutar API de Java para Procesamiento JSON(JSR 374) en eclipse?

Estoy tratando de analizar cadena JSON a JsonParser(javax.json.stream.JsonParser). También añadió javax.json-api-1.0.jar en la construcción de camino. En tiempo de ejecución, no es una excepción.
Mi código es

import java.io.StringReader;
import javax.json.Json;
import javax.json.JsonReader;
import javax.json.JsonStructure;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParser.Event;
import javax.json.JsonReader;
import javax.json.JsonStructure;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParser.Event;
public class jsonnn {
public class jsonnn {
public static void main(String[] args) {
        //Parse back
        final String result = "{\"name\":\"Falco\",\"age\":3,\"bitable\":false}";
        final JsonParser parser = Json.createParser(new StringReader(result));
        String key = null;
        String value = null;
        while (parser.hasNext()) {
            final Event event = parser.next();
            switch (event) {
            case KEY_NAME:
                key = parser.getString();
                System.out.println(key);
                break;
            case VALUE_STRING:
                value = parser.getString();
                System.out.println(value);
                break;
            }
        }
        parser.close();
    }
}

Y la excepción es

Exception in thread "main" javax.json.JsonException: Provider org.glassfish.json.JsonProviderImpl not found
at javax.json.spi.JsonProvider.provider(JsonProvider.java:97)
at javax.json.Json.createParser(Json.java:90)
at jsonnn.main(jsonnn.java:14)
Caused by: java.lang.ClassNotFoundException: org.glassfish.json.JsonProviderImpl
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at javax.json.spi.JsonProvider.provider(JsonProvider.java:94)
... 2 more

1 Comentario

  1. 27

    Está desarrollando en contra de una API y no tienen aplicación para que la API. Usted necesita asegurarse de que usted tiene una aplicación de JSON-P especificación para ejecutar el código que está intentando utilizar.

    En el JSR 374 sitio web oficial de guía de introducción, muestra que usted necesita dos dependencias Maven – uno para la API, y uno para la implementación de referencia – antes de que pueda usar JSON-P 1.1:

    <dependency>
        <groupId>javax.json</groupId>
        <artifactId>javax.json-api</artifactId>
        <version>1.1</version>
    </dependency>
    
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.json</artifactId>
        <version>1.1</version>
    </dependency>

    Ya que parece que no estás usando Maven, usted tendrá que descargar la aplicación FRASCO de Maven Central manualmente:
    http://repo1.maven.org/maven2/org/glassfish/javax.json/1.1/

    O simplemente haz clic en este enlace directo para descargar el JAR: javax.json-1.1.jar

    • También vale la pena mencionar que la versión 1.0 (tanto de la API y de la aplicación) es el último para ser compatible con Java 1.8. Las versiones 1.1 en adelante requieren Java 1.9 (archivo de clase de la versión 53.0).
    • Eso no es correcto – JSON-P 1.1 fue lanzado en Java EE 8, que es Java SE 8.

Dejar respuesta

Please enter your comment!
Please enter your name here