2016-10-11 9 views
1

プロジェクトで作業したときに問題に遭遇し、別のプロジェクトに切り替えた後、しばらくして最初のプロジェクトに戻りました。Java JSONの解析

ここで奇妙なことは、古いプロジェクトに戻った後、JSONの構文解析がこれまでと同じように機能しなくなったことです。

これはプロジェクトです。すべての依存関係は以前と同じです。今

tere

と::

tere

だから、何が起こるかは、例えば、私のIntelliJは、前のコンソールから、任意のより多くの画像をURL-Sを認識しないということです

あなたが見ることができるように、URLは青色でクリック可能で、現在はプレーンテキストです。 JSON配列を解析する際に

はまた、私はそのような何かを行うに早くできた:

number = jsonArray.getJSONObject(0).getString("version"); 

をそして、それは文字列を返しただろうが、今何が起こるかは、私はエラーを取得することです:

INFO: org.json.JSONException: JSONObject["version"] not a string. 

私はこれらの輸入品を使用しています:

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

私はそれが今ではかなり曖昧に見えるかもしれませんことを知っているが、感じます追加の質問を自由にすることができます。

編集:JSONの行:

version: 36928, 
+0

サウンズ処理されたJSONは手助けしやすくなります。 – MByD

+0

問題は、別の開発者が同じプロジェクトと彼のコンピュータで作業していることです。すべてが機能します。 JSONでエラーを返す行は、次のとおりです。 バージョン:36928、 –

+2

「36928」は文字列、「36928」は数字です。数値を取得するにはgetInt( "version")を試してください – AxelH

答えて

0

異なっていた何を、JDKのバージョンとビット・モードでした。私は少し新しいJDKをインストールし、64ビット、もう1台のPCは古いJDKと32ビットを持っていました。私は完全には分からないが、その中で何が違っていて問題を引き起こしたのか、今は再び働いている。

ありがとうございました!

0

JSONArrayとJSONObjectの代わりにJackson ArrayNodeとObjectNodeを使用してください。

ObjectMapper mapper = new ObjectMapper(); 
ArrayNode arrayNode = mapper.createArrayNode(); 
Object obj = new Object(); 
arrayNode.add(mapper.createObjectNode().put("version", "Hello Stack!")); 
arrayNode.addPOJO(obj); 
arrayNode.get(0).get("version"); 

そしてまた、それはジャクソンを含むため、このMavenの依存関係を使用することをお勧めします:

<dependency> 
     <groupId>com.fasterxml.jackson.datatype</groupId> 
     <artifactId>jackson-datatype-jsr310</artifactId> 
     <version>${jackson.version}</version> 
</dependency> 

ドキュメントはここにある:あなたがの例を投稿する場合はJSONの構造は、変更されているようhttp://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/node/ArrayNode.html

+1

最初のライブラリが正常に動作するときにライブラリを変更するのはなぜですか?問題は、作業コードの動作の変更に関するものでした。これは多くの更新を行うことです... – AxelH