2017-06-25 5 views
-1

JSONファイルの解析できないこと私はこのJSON-ファイルを解析しようとしているが、私は、私は理解しますが周りの道を見つける方法がわからないエラーが発生します

JSONArray locations = new JSONArray(jsonString); 

エラー

Json parsing error: Value [{"lon":8.6520691,"type":"fuel","address":"Frankfurter Straße 65","lat":49.8848387,"name":"Esso"},{ 
.."lon":8.6419863,"type":"fuel","address":"Rüdesheimer Straße 114","lat":49.8540121,"name":"Aral Tankstelle"},{"lon":8.6468131,"type":"fuel","address":"Heidelberger Straße 55-59","lat":49.8614199,"name":"Total"},{"lon":8.6311635,"type":"fuel","address":"Pallaswiesenviertel Pallaswiesenstraße","lat":49.8847555,"name":"Firma Karaahmetaglu"},{"lon":8.6429677,"type":"fuel","address":"Pallaswiesenstraße 85","lat":49.8825735,"name":"Shell"},{"lon":8.6443997,"type":"fuel","address":"Johannesviertel Kasinostraße","lat":49.8796515,"name":"Jet"},{"capacity":90,"lon":8.647085,"type":"pub","address":"Mollerstadt Saalbaustraße","lat":49.8714409,"name":"Unikum"}] of type org.json.JSONArray cannot be converted to JSONObject 

if(c.has("icon"){ 
icon = c.getString("icon"); 
}else{ 
icon = ""; 
} 

を変更します

あなたは"data"という名前のリストとタグを作ることができ、JSONオブジェクトでなければなりません

+0

JSON文字列のPOJO表現を生成し、Gsonを使用して結果を解析してみませんか? – Eenvincible

+0

あなたの投稿を編集してlogcatのノイズを除去しましたが、コードを[mcve] –

答えて

1

JSONファイルのルート・オブジェクトを解決しました。一部のパーサーは許可するかもしれませんが、推奨されません。ファイルを変更できない場合は、"{ \"file\": " + jsonStr + "}"を解析し、メンバーファイルを使用してください。

編集:

ルート・オブジェクトとしての配列がサポートしなければならない(ルート・オブジェクトが配列(JSONArray)が、オブジェクト(JSONObject)ではないとして、あなたは、コードを書いているが、それはあります配列)、文字列または数字が常にサポートされているとは限りません。 は、単なる文字列を解析タイプを変更:

JSONObject jsonObject = new JSONObject(jsonStr); 
JSONArray locations = jsonObject.getJSONArray(""); 

JSONArray locations = new JSONArray(jsonStr); 
にエラーが最初の行で発生し、それが対象としない配列を期待するので、パーサーによって得ています。

+0

として表示すると、\ "ファイル\"という意味がありますか? –

+1

あなたのライブラリがJSONObjectでJSONを解析することしかサポートしていない場合は、 '' {\ "file \": '' ''は開始タグです( '' jsonObject.getJSONArray()によってリストにアクセスできます) – cmdLP

+0

これは機能しましたが、解析中にアクティビティが終了しました(?) 編集済みの回答 –

関連する問題