Android-декодирование JSON-ответа - PullRequest
0 голосов
/ 15 октября 2010

код обработки запроса

  while($op=db_fetch_object($result))
  {
    $data[$i++]=array($op->name,$op->age,$op->dept);
  }

  echo json_encode($data);

$ data содержит

[["Aadidev", "23", "Division1"], ["Ragman", "35», "division3"], [ "Sahlaad", "27", "division1"], [ "Maraadhak", "21", "Филиал2"], [ "Arya", "48", "division1"], ["хвостовика", "25", "division1"], [ "Aatmaj", "54", "division1"], [ "Абхай", "46", "Филиал2"], [ "Bhinatha", "37","Division2"], ["Abhineet", "29", "Division3"], ["Srita", "47", "Division1"]]]

Код Android

String nameop="";
 try{
    JSONObject json=new JSONObject(page);
    JSONArray namearr=json.names();
    JSONArray valarr=json.toJSONArray(namearr);
    for(int i=0;i<valarr.length();i++)
    {
     nameop+=namearr.getString(i)+" "+valarr.getString(i)+"\n";
    }
    result.setText(nameop);
    }catch(Exception e){
     Toast.makeText(this,e.toString(), Toast.LENGTH_LONG).show();
    }

, что приводит к исключению

org.json.JSONException: текст JSONObject должен начинаться с '{' с символа 1 из [["Aadidev", "23", "Division1"],[ "Ragman", "35", "division3"], [ "Sahlaad", "27", "division1"], [ "Maraadhak", "21", "Филиал2"], [ "Arya", "48", "division1"], [ "хвостовика", "25", "division1"], [ "Aatmaj", "54", "division1"], [ "Абхай", "46", "Филиал2"], [»Бхинатха "," 37 "," дивизион2 "], [" Абхинеет "," 29 "," дивизион3 "], [" Срита "," 47 "," дивизион1 "]].

Ответы [ 3 ]

1 голос
/ 15 октября 2010

Вы можете использовать echo json_encode($data, JSON_FORCE_OBJECT); для принудительного создания объекта.

Простое использование json_encode () в массиве не генерирует объект, что, по-видимому, предполагает JSONObject Java.

это PHP> = 5.3!

0 голосов
/ 15 октября 2010

Попробуйте немного изменить свой php-код:

while ($ op = mysql_fetch_array (mysql_query (ваш запрос)))
{
$ data [$ i] ["name"] = $ op ["name"];
$ data [$ i] ["age"] = $ op ["age"];
$ data [$ i] ["dept"] = $ op ["dept"];
$ Я ++;
}

echo json_encode ($ data);



Это вернет строку json, такую ​​как:
[{ "Имя": "name1", "возраст": "age1", "Отдел": "dept1"}, { "имя": "name2", "возраст": "age2", "Отдел": "dept2 «}]



Затем вам нужно проанализировать эту строку JSON в коде Java

0 голосов
/ 15 октября 2010

Ваша строка json действительно должна начинаться с символа '{'.Попробуйте проанализировать строку из вашего php-приложения и посмотрите, что произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...