2017-10-30 38 views
1

eclipseでJSON処理用Java API(JSR 374)を実行するにはどうすればよいですか?

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仕様の実装があることを確認する必要があります。それがどのように見えるので

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

:あなたは、JSON-P 1.1を使用する前に - API用とリファレンス実装の1 - JSR 374 official website Getting Started guide

、それはあなたが Mavenの依存関係が必要であることを示していますあなたは、Mavenを使用して、手動でのMaven Centralから実装のJARをダウンロードする必要がありますしていない。 http://repo1.maven.org/maven2/org/glassfish/javax.json/1.1/

それとも、JARをダウンロードするには、この直接リンクをクリックしてください:javax.json-1.1.jar

+0

に興味があります。そのjarファイルを使用してJSONを解析できます。 –

関連する問題