2014-01-19 3 views
-4

Вы прочитали этот JSON, я все еще новичок в JSON, не справляющемся с получением данных.Получить данные JSON Ошибка Android

Вот JSON:

{ 
    "cliente": [ 
     { 
      "cpf": "82334673382", 
      "endereco": "ewkiewowieou", 
      "id": "11", 
      "nome": "Wagner Assis" 
     }, 
     { 
      "cpf": "82334889929", 
      "endereco": "uuqwuwqu", 
      "id": "14", 
      "nome": "GS Advogados" 
     }, 
     { 
      "cpf": "3237287383", 
      "endereco": "ewiueiwu", 
      "id": "15", 
      "nome": "Empreiteira GH" 
     }, 
     { 
      "cpf": "73448723349", 
      "endereco": "dsgdsjhdjh", 
      "id": "17", 
      "nome": "Cobrança HH" 
     }, 
     { 
      "cpf": "7337474847", 
      "endereco": "weuwuewiu", 
      "id": "18", 
      "nome": "Pollo GH" 
     }, 
     { 
      "cpf": "23423423", 
      "endereco": "rewrwer", 
      "id": "19", 
      "nome": "Finanças LH" 
     }, 
     { 
      "cpf": "847384378", 
      "endereco": "jsjsdhjsdh", 
      "id": "20", 
      "nome": "Empreisa SA" 
     }, 
     { 
      "cpf": "123456", 
      "endereco": "ewewew", 
      "id": "21", 
      "nome": "João Pedro" 
     }, 
     { 
      "cpf": "73447832828", 
      "endereco": "dsjdhsjh", 
      "id": "22", 
      "nome": "Pedro Otavio" 
     }, 
     { 
      "cpf": "312312", 
      "endereco": "rwwree", 
      "id": "23", 
      "nome": "Carlos Philip" 
     } 
    ] 
} 

Вот метод, где я вытягиваю данные:

public void handleResponse(String response) { 

    EditText edFirstName = (EditText) findViewById(R.id.testeNome); 
    EditText edLastName = (EditText) findViewById(R.id.testeEnder); 
    EditText edEmail = (EditText) findViewById(R.id.testeCpf); 

    edFirstName.setText(""); 
    edLastName.setText(""); 
    edEmail.setText(""); 

    try { 

     //------------------------------// 
     //Array Json 
     JSONArray JArray = new JSONArray(response.toString()); 
     JSONObject JObjeto = JArray.getJSONObject(0); 
     JSONObject posicao = JObjeto.getJSONObject(KEY_CLI); 

     String firstName = posicao.getString("id"); 


     edFirstName.setText(firstName); 
     } 
    } catch (Exception e) { 
     Log.e(TAG, e.getLocalizedMessage(), e); 
    } 

} 

Ошибка говорят, что это не представляется возможным преобразовать массив объектов. Кто-нибудь может мне помочь?

+0

Ваш 'response' строка содержит объект от того, что вы показываете нам что означает, что вы не можете создать' JSONArray' из него. Вы должны создать объект из 'response', получить массив, проиндексированный ключом' cliente', а затем обработать каждую запись в этом списке. – bvidal

+0

, поэтому я должен иметь дело с моим json-объектом, а не с массивом? покажет мне пример? что я новичок в json и только успел сделать только с клиентом, а не с номером. – zullyB

+0

Посмотрите на ответ ниже, который будет хорошим началом. – bvidal

ответ

1

Вы получаете объект JSONObject первоначально через cliente. Остальные данные поступают как JSONArray. Разберите свой объект и получите дескриптор массива. Итерации по массиву и получить отдельные элементы:

JSONParser parser = new JSONParser(); 

Object parsed = parser.parse(response.toString()); 
JSONObject jsonObject = (JSONObject) parsed; 

JSONArray jsonArray = (JSONArray) jsonObject.get("cliente"); 

for (Object obj : jsonArray) { 
    if (obj instanceof JSONObject) { 
     JSONObject cpf = (JSONObject) obj; 
     System.out.println(cpf.get("cpf").toString()); 
    } 
} 
+0

Я сделал, тогда мне придется создать этот класс парсера json , есть ли сайт, чтобы показать, как собрать правильную структуру json для android? – zullyB

+0

@zullyB Это классы json, используемые выше: 'import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; ' – PopoFibo

+0

ok, veryyyyyyyy спасибо! – zullyB

Смежные вопросы