0
[

    {
        "description": "My home", 
        "name": "Sweet Home", 
        "point": {
            "lat": 22.890976, 
            "long": 90.459097
        }, 
        "type": 1,
        "cid": "5319197376176516414"
    }

これは、情報を解析するための私の json ファイルです。これが名前とlngを解析するための私のコードです。

BufferedReader jsonReader = new BufferedReader(new InputStreamReader(this.getResources().openRawResource(R.raw.map)));
        StringBuilder jsonBuilder = new StringBuilder();
        try {
            for (String line = null; (line = jsonReader.readLine()) != null;) {
                jsonBuilder.append(line).append("\n");
            }

            JSONTokener tokener = new JSONTokener(jsonBuilder.toString());
            JSONArray jsonArray = new JSONArray(tokener);

                JSONObject jsonObject = jsonArray.getJSONObject(0);

                String title = jsonObject.getString("name");
                String lhg = jsonObject.getJSONObject("point").getString("lng");
} catch (FileNotFoundException e) {
            Log.e("jsonFile", "file not found");
        } catch (IOException e) {
            Log.e("jsonFile", "ioerror");
        } catch (JSONException e) {
            Log.e("jsonFile", "error while parsing json");
        }
    }

}

それは私に例外を示していますerror while parsing json。どうすれば解決できますか?私の問題は何ですか?

4

2 に答える 2

5

JSONオブジェクトの「ポイント」には「lng」というプロパティが含まれないため

 String lhg = jsonObject.getJSONObject("point").getString("lng")

「long」という名前のものが含まれています

"point": {
            "lat": 22.890976, 
            "long": 90.459097
        }, 

したがって、経度を取得するコードは次のようになります。

 String lhg = jsonObject.getJSONObject("point").getString("long")
于 2013-06-17T11:41:32.020 に答える
1
 String lhg = jsonObject.getJSONObject("point").getString("lng")  use "long" instead of lng.
于 2013-06-17T11:46:35.783 に答える