質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

5983閲覧

IDEなしでjacksonを使ってjsonをparseする。

hirdd

総合スコア50

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/02/02 09:44

IDE(eclipseなど)無しで、jacksonライブラリを使用して、jasonをパースしようと試みています。
以下にあるようなMain.javaを作成し、javacコマンドを用いてclassファイルを作成しようとしたところ、java.com.fasterxml.jackson.databind.ObjectMapperにパスが通ってないようで、コンパイルができない状況です。。。
どなたか、解決法が分かる方がいましたら、ご教授いただけますでしょうか??

■javacコマンド
$ javac Main.java -cp ./jackson-core-2.3.5.jar:./jackson-databind-2.3.5.jar
Main.java:6: エラー: パッケージjava.com.fasterxml.jackson.databindは存在しません
import java.com.fasterxml.jackson.databind.ObjectMapper;
^
Main.java:37: エラー: シンボルを見つけられません
ObjectMapper mapper = new ObjectMapper();
^
シンボル: クラス ObjectMapper
場所: クラス Main
Main.java:37: エラー: シンボルを見つけられません
ObjectMapper mapper = new ObjectMapper();
^
シンボル: クラス ObjectMapper
場所: クラス Main
Main.java:40: エラー: シンボルを見つけられません
JsonNode rootNode = mapper.readValuei(file, JsonNode.class);
^
シンボル: クラス JsonNode
場所: クラス Main
Main.java:40: エラー: シンボルを見つけられません
JsonNode rootNode = mapper.readValuei(file, JsonNode.class);
^
シンボル: クラス JsonNode
場所: クラス Main
エラー5個

■ディレクトリ構成
$ ls
Main.java
jackson-core-2.3.5.jar
jackson-databind-2.3.5.jar
test.json
$

■javaソース

java

1 2import java.io.File; 3import java.io.FileReader; 4import java.io.BufferedReader; 5import java.io.FileNotFoundException; 6import java.io.IOException; 7import java.com.fasterxml.jackson.databind.ObjectMapper; 8import java.util.Iterator; 9 10public class Main { 11 12 public static void main(String[] args) { 13 14 // 引数でjsonファイル(test.json)を渡す。 15 String fileName = args[0]; 16 17 // ファイルの内容を全てstrinBufferに読み出す。 18 StringBuffer strBuf = new StringBuffer(); 19 String line; 20 21 try { 22 23 File file = new File(fileName); 24 25 ObjectMapper mapper = new ObjectMapper(); 26 27 // rootNodeを取得 28 JsonNode rootNode = mapper.readValuei(file, JsonNode.class); 29 30 Iterator<String> fieldStrings = rootNode.getFieldNames(); 31 32 while (fieldStrings.hasNext()) { 33 String fieldString = fieldStrings.next(); 34 System.out.println(fieldString); 35 } 36 37 }catch(FileNotFoundException e) { 38 39 System.out.println("ファイルがないです。"); 40 }catch(IOException e) { 41 42 System.out.println("IOExceptionが出たよ。");} 43 44 System.out.println(strBuf); 45 } 46}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

パッケージ名の最初の java は不要ではないでしょうか。

Java

1// import java.com.fasterxml.jackson.databind.ObjectMapper; 2import com.fasterxml.jackson.databind.ObjectMapper;

投稿2017/02/02 14:46

編集2017/02/02 14:47
copepoda

総合スコア324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hirdd

2017/02/03 07:59

ご回答頂きありがとうございます。コンパイルが通りました。
guest

0

$ javac Main.java -cp ./jackson-core-2.3.5.jar:./jackson-databind-2.3.5.jar

cpの区切り文字が:(コロン)になっているのが原因?
;(セミコロン)に修正してみてください。

投稿2017/02/02 09:57

abs123

総合スコア1280

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hirdd

2017/02/02 11:04

実行環境を記載しておらず、申し訳ないです。MacOSで実行しているのでcpの区切り文字は:で良いと思います。一応、;も試してみましたが、ダメでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問