2015-02-12 5 views
0

Я пытаюсь разобрать данные массива json в listview! Я искал весь интернет и всегда был на одном месте! Json Арай должен иметь заголовок что-то вроде этогоAndroid JsonArray в ListView

"emp_info":[{"employee name":"Adam","employee no":"101700"},{"employee name":"John","employee no":"101701"},{"employee name":"Paul","employee no":"101702"},{"employee name":"Mark","employee no":"101703"},{"employee name":"Donald","employee no":"101704"},{"employee name":"Brain","employee no":"101705"},{"employee name":"Kevin","employee no":"101706"}]} 

Если в моем понимании "emp_info" это заголовочный файл, с помощью которого я должен искать остальные данные внутри него в андроиде! Мой колледж делая вид, что я могу принимать и анализировать те же данные, в listview без этого имени заголовка, но каждый бит кода, в котором я искал синтаксический анализ json в android, был такой же строкой!

JSONObject obj = new JSONObject(jsonString); 
JSONArray stations = obj.getJSONArray("emp_inf"); 

, где я просто поместить jsonarray файл заголовка, как вы можете увидеть в этой части кода! Поэтому, пожалуйста, помогите мне, что можно принять JSon массив без этого кода? Потому что если я пытаюсь удалить этот код Я получаю nullpointer в своем коде! Будет очень рад, если вы сможете хотя бы сказать «да» или «нет»! Проводка полных кодов! Вот андроид класс, который получает JSon и загружают их в виде списка

private class JsonReadTask extends AsyncTask<String, Void, String> { 
@Override 
protected String doInBackground(String... params) { 
HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://54.148.41.171/server/index/dompy"); 
try { 
HttpResponse response = httpclient.execute(httppost); 
jsonResult = inputStreamToString(
response.getEntity().getContent()).toString(); 
} 

catch (ClientProtocolException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
return null; 
} 

private StringBuilder inputStreamToString(InputStream is) { 
String rLine = ""; 
StringBuilder answer = new StringBuilder(); 
BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 

try { 
while ((rLine = rd.readLine()) != null) { 
answer.append(rLine); 
} 
} 

catch (IOException e) { 
// e.printStackTrace(); 
Toast.makeText(getApplicationContext(), 
"Error..." + e.toString(), Toast.LENGTH_LONG).show(); 
} 
return answer; 
} 

@Override 
protected void onPostExecute(String result) { 
ListDrwaer(); 
} 
}// end async task 

public void accessWebService() { 
JsonReadTask task = new JsonReadTask(); 
// passes values for the urls string array 
task.execute(new String[] { url }); 
} 

// build hash set for list view 
public void ListDrwaer() { 
List<Map<String, String>> employeeList = new ArrayList<Map<String, String>>(); 

try { 
JSONObject jsonResponse = new JSONObject(jsonResult); 
JSONArray jsonMainNode = jsonResponse.optJSONArray("emp_info"); 

for (int i = 0; i < jsonMainNode.length(); i++) { 
JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); 
String name = jsonChildNode.optString("empployee no"); 
String number = jsonChildNode.optString("etc."); 
String outPut = name + "-" + number; 
employeeList.add(createEmployee("data", outPut)); 
} 
} catch (JSONException e) { 
Toast.makeText(getApplicationContext(), "Error" + e.toString(), 
Toast.LENGTH_SHORT).show(); 
} 

SimpleAdapter simpleAdapter = new SimpleAdapter(this, employeeList, 
android.R.layout.simple_list_item_1, 
new String[] { "employee no" }, new int[] { android.R.id.text1 }); 
listView.setAdapter(simpleAdapter); 
} 

private HashMap<String, String> createEmployee(String name, String number) { 
HashMap<String, String> employeeNameNo = new HashMap<String, String>(); 
employeeNameNo.put(name, number); 
return employeeNameNo; 
} 


} 

И этим JSon массив им успешно способных принести какой тип JSON является следующим!

{"emp_info":[{"employee name":"Adam","employee no":"101700"},{"employee name":"John","employee no":"101701"},{"employee name":"Paul","employee no":"101702"},{"employee name":"Mark","employee no":"101703"},{"employee name":"Donald","employee no":"101704"},{"employee name":"Brain","employee no":"101705"},{"employee name":"Kevin","employee no":"101706"}]} 

И вот массив json, который мой колледж притворяется, что я должен принять!

{"data":"123"} 

И им говоря, что его не удается загрузить этот JSON в списке только потому, что не имеют заголовочный файл, как шахты emp_info, но ГЭС говоря его не имеет значения, я просто должен принять! Мы только на одном проекте и я просто не могу понять, можно ли даже делать то, что он говорит?

+1

Этот json недействителен. –

+0

Опубликован ваш полный json? то это не является допустимым. –

+0

Нет, его кусочек json плохо отредактировал сейчас и опубликовал полный json, дело в том, что я умею делать все идеально с этим путем, но потому, что мой колледж является хозяином на стороне сервера php, он говорит, что я должен принять его без этого заголовка i только что опубликовал и im gettin frasturade как ад! –

ответ

0
String name = jsonChildNode.optString("empployee no"); 
String number = jsonChildNode.optString("etc."); 

Как вы можете получить данные с помощью «и т. Д.», Я не мог понять это во-первых. Он должен возвращать «вместо номера сотрудника».

+0

О, извините, это была ручная типичность, я только когда справлялся код, набранный и т. д., чтобы передать его быстро, я все еще вместо того, чтобы и т. д. gettin у сотрудника никаких параметров! – BiggDawgg

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