Ошибка синтаксического анализа данных org.json.jsonexception: значение .... #(mystring) типа java.lang.string не может быть преобразовано в jsonarray
я пытаюсь показать свою строку json в android listView, но обнаружил ошибку
Примечание: Я использую службы WCF для преобразования моих данных в формат json.
Ошибка разбора данных орг.в формате JSON.JSONException: значение [{"идентификатор":1,"имя":"Умар","ССН":"11111111"},{"идентификатор":2,"имя":"Хан","ССН":"2222222"}] на JSONDataResult типа Java.яз.Строка не может быть преобразована в JSONArray
Моя Строка Json ...
{"JSONDataResult":"[{\"Id\":1,\"Name\":\"Umair\",\"SSN\":\"11111111\"},{\"Id\":2,\"Name\":\"khan\",\"SSN\":\"2222222\"}]"}
Моя Android-Кодировка :..
охраняемых недействительными showList(){
пробовать {
// myJSON = myJSON.replace("\"","'");
JSONObject jsonObj = новый JSONObject(myJSON);
JArray = jsonObj.getJSONArray(TAG_Obj);
для(тип int я=0;Я&л;режим jarray="оплот"&ГТ; JSONObject с = JArray.getJSONObject(я);
ИД = ц.метода getString(в tag_id);
название = с.метода getString(TAG_Name);
ССН = с.метода getString(TAG_SSN);
Хранилище HashMap и Л;строка,строка&ГТ; Hashmappersons = новый HashMap и Л;строка,строка&ГТ;();
Hashmappersons.поставить(в tag_id,ИД);
Hashmappersons.поставить(TAG_Name имя);
Hashmappersons.поставить(TAG_SSN,ССН);
ArraypersonList.add(Hashmappersons);
}
ListAdapter listadapter = новый SimpleAdapter(
В MainActivity.это, ArraypersonList,
R. layout.list_item,
новая строка[]{TAG_ID,TAG_Name,TAG_SSN},
новый тип int[]{R. В ИД.tv_id, Р. ИД.tv_Name,Р. ИД.tv_SSN}
);
listv.setAdapter(listadapter);
}
catch (JSONException e) {
е.печатные();
Войти.в("" + е "ошибка" + е);
Log.e("log_tag", "ошибка синтаксического анализа данных "+e.toString());
Log.e("log_tag", "Failed data was:\n" +listv);
// tv_Er.setText("ошибка:" + e);
Toast.makeText(getApplicationContext ()," " +e+"",Toast.LENGTH_SHORT).показать();
}
}
общественного недействительными метода GetData(){
класс GetDataJSON расширяет AsyncTask<string,> {
@Ручная коррекция
защищенная строка doInBackground(String... параметры) {
DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
// Протоколы HttpPost протоколы HttpPost = новые протоколы HttpPost(URL-адрес);
// Зависит от вашего веб-сервиса
// протоколы HttpPost.действие setheader("принять", "приложение/JSON");
// протоколы HttpPost.действие setheader("содержимое-тип", "приложение/JSON");
HttpGet httpget = новый HttpGet(url);
httpget.setHeader("Accept", "application/json");
httpget.setHeader("Content-type", "application/json");
// DefaultHttpClient httpClient = новый DefaultHttpClient();
InputStream inputStream = null;
Строковый результат = нуль;
пробовать {
// Ответ объект HttpResponse = с помощью HttpClient.выполнение(протоколы HttpPost);
Ответ объект HttpResponse = с помощью HttpClient.инструкции execute(httpget);
HttpEntity лицо = ответ.его код();
InputStream в = лицо.getContent();
// HttpResponse response = httpClient.execute(запрос);
// HttpEntity responseEntity = response.getEntity();
// InputStream в = responseEntity.getContent();
// json-это UTF-8 по умолчанию
Командой bufferedreader читатель = читает(новый InputStreamReader(InputStream в, "кодировка UTF-8"), 8);
// BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, HTTP.UTF_8), 8);
Проверьте новое окно инструментов();
Строки = значение null;
в то время как ((строка = читатель.с readline()) != нуль)
{
sb.append(строка + "\n");
}
результат = sb.toString();
} catch (исключение e) {
// Ой
}
наконец {
пробовать{
если(класса InputStream != нулевого)класса InputStream.рядом();
}
поймать(исключение хлюпать)
{
}
}
возвращаемый результат;
}
@Ручная коррекция
protected void onPostExecute(строковый результат){
myJSON=результат;
showList();
}
}
GetDataJSON g = новый GetDataJSON();
г. выполнение();
}
Что я уже пробовал:
я пытаюсь показать свою строку json в android listView, но всегда обнаруживаю ошибку
значение типа java.lang.Строка не может быть преобразована в JSONArray .