2017-10-30 10 views
1

Eclipse에서 JSON 처리 (JSR 374) 용 Java API를 실행하는 방법은 무엇입니까?

JSON 문자열을 JsonParser (javax.json.stream.JsonParser)로 구문 분석하려고합니다. 빌드 경로에 javax.json-api-1.0.jar도 추가되었습니다. 런타임에는 예외가 있습니다. 내 코드공급자 org.glassfish.json.JsonProviderImpl이 javax.json.spi.JsonProvider.provider (JsonProvider.java:97)에 없습니다.

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

입니다 그리고 당신은 API에 대해 개발하고 API에 대한 구현이없는 것

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 
+0

JSON-B API : http://json-b.net/getting-started.html – Mike

답변

1

는 예외입니다. 실제로 사용하려고하는 코드를 실행하려면 JSON-P 사양을 구현해야합니다. API에 대한 하나의 참조 구현을위한 한 - - JSR 374 official website Getting Started guide에서

는, 당신이 메이븐 의존성이 필요하다는 것을 보여줍니다 당신이 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> 

그 모습 때문에 JAR 파일을 다운로드 http://repo1.maven.org/maven2/org/glassfish/javax.json/1.1/

을하거나이 직접 링크를 클릭하십시오 : 당신은 메이븐을 사용하지 않는 수동 메이븐 중앙에서 구현 JAR를 다운로드해야합니다 javax.json-1.1.jar

+0

이제 해당 jar 파일을 사용하여 JSON을 구문 분석 할 수 있습니다. –