2017-02-25 14 views
0

ためにJavaでorg.json使用:http://pastebin.com/mvMrcii5解析JSON私はいくつかは見てなかったが、かなり私は、JSONのこの文字列から特定の値を引くことになったかを理解していなかった大規模なJSONファイル/ワトソンパーソナリティ

私はそれを生成しましたワトソン人格識見のAPIを使用して、私の理解から、私はただ、実際のJSONObjectにJSONを取得するために使用されるプロファイルオブジェクトを変換するためにorg.jsonを使用することができるはずですし、これまでのところ、私は

JSONObject objectArray = new JSONObject(profile); 

を入力することができましたし、それはどんな誤りも投げなかった。私は、特定のtrait_idとそれに関連するパーセンタイルをJSON内から、同じ参照の何百もの異なるインスタンスをどのように取得するのか分かりません。理想的には、それらを別々に印刷するために、それらはすべて異なる変数に配置されます。 JSON内の特定のオブジェクトを選択するのが面倒であれば、CSVとして解析することもできます。

私は本当に何か助けに感謝したいと思います。私はこの壁で頭を叩いています。

+1

ようこそ!良い質問をするのを助けるために私たちの[SO Question Checklist](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)をよく読んで、良い答えを得てください。 –

+0

あなたの質問はあまりにも曖昧です。私たちが答えることができるのは、JSONObjectから情報を抽出する方法は、JSONObjectのAPIドキュメントで説明されています。それを読んだことはありますか?何か試しましたか? –

+0

私はorg.jsonとgsonと何かをしようとしましたが、それはあまりにも混乱していました。私は下に私の作業コードを掲載し、最終的に私の選択のライブラリとしてjsonpathを使用する! – Jako81624

答えて

0

最後に、私はそれをどうやって行うのかを考え出しました。ソリューションを望むワトソンSDKとJavaを使用して、誰のために、ここでの鉱山です:

Profile profile = service.getProfile(secondArray).execute(); 
    String textProfile = profile.toString();   
    Object document = Configuration.defaultConfiguration().jsonProvider().parse(textProfile); 
    String nameWatson = JsonPath.read(document, "$.personality[0].name"); 
    Double percentWatson = JsonPath.read(document, "$.personality[0].percentile"); 

これはJayWay JSONPathライブラリを使用することで動作し、とMavenのために追加します。

<dependency> 
     <groupId>com.jayway.jsonpath</groupId> 
     <artifactId>json-path</artifactId> 
     <version>2.2.0</version> 
    </dependency> 

のJavaの最初の行は、ワトソンを実行しますクエリを実行し、デフォルトのJSON形式のプロファイルとしてプロファイルオブジェクトに格納します。次に、文字列に変換し、textProfileとして格納します。次の行は、jsonpathライブラリを使用して、今変換されたプロファイルを、jsonpathライブラリがtextProfile変数を介して読み取ることができるものとして格納します。 2行目から最後の行までは、Watson JSONレイアウトの階層を横断し、personalityセクションの下にあるnameの最初のインスタンスをnameWatsonとして格納し、同じ考え方を次の行に適用します。これに問題がある場合は、プロファイル変数を画面に出力し、テキストファイルに保存して後で参照し、コードに実装する前にthisを使用してテストしてください。 ".."などの修飾語を使用すると、リストに入れない限りエラーが発生するので、明確な参照を使用するようにしてください(詳細はjsonpath githubを参照してください)。

関連する問題