Получение принудительного закрытия ошибки в Android при разборе JSON Google обнаружить перевод API - PullRequest
0 голосов
/ 01 апреля 2012

Я использую этот код для определения исходного языка ..

   jsonObj = new JSONObject(response);
        JSONObject jsoObj2 = jsonObj.getJSONObject("data");
        JSONArray jArray = jsoObj2.getJSONArray("detections");
        JSONObject steps = jArray.getJSONObject(0);
        srcLanguage = steps.getString("language");

Вот ответ.

{
 "data": {
  "detections": [
   [
    {
     "language": "fr",
     "isReliable": false,
     "confidence": 0.41935483
    }
   ]
  ]
 }
}

Пожалуйста, помогите мне разобрать этот ответ json.

Я отлаживаю этот код и получаю это исключение.

org.json.JSONException: Value [{"isReliable":false,"confidence":0.41935483,"language":"fr"}] at 0 of type org.json.JSONArray cannot be converted to JSONObject

Ответы [ 2 ]

1 голос
/ 01 апреля 2012

Измените его следующим образом:

jsonObj = new JSONObject(response);
    JSONObject jsoObj2 = jsonObj.getJSONObject("data");
    JSONArray jArray = jsoObj2.getJSONArray("detections");
    JSONArray jArray2 = jArray.getJSONArray(0);
    JSONObject steps = jArray2.getJSONObject(0);
    srcLanguage = steps.getString("language");

Поскольку в массиве есть массив.

0 голосов
/ 01 апреля 2012

Если вышеупомянутый ответ является ответом, вам необходимо внести незначительное изменение

    jsonObj = new JSONObject(response);
    JSONObject jsoObj2 = jsonObj.getJSONObject("data");
    JSONArray jArray = jsoObj2.getJSONArray("detections");
    JSONArray steps = jArray.getJSONArray(0);
    srcLanguage = jArray.getJSONObject(0).getString("language");

Попробуйте его, пожалуйста ...

...