#java #android #json #xml
#java #Android #json #xml
Вопрос:
Я должен извлечь некоторые данные из json
.
После HTTP GET
того, как я конвертирую свой xml
( xml
только для сайта) в json
.
Когда я пытаюсь извлечь данные, json
я получаю сообщение об ошибке.
Какой совет? Заранее спасибо
Xml --> <data> <user id = "value" name="value" surname = "value" /> </data>
После преобразования у меня есть что-то вроде этого
Json --> {"data":{"user":[{"id":"value","name":"value","surname":"value"}]}}
void convert(){
String xml; //data from HTTP GET
JSONObject jsonObj = null;
JSONObject data = jsonObj.getJSONObject("data");
Log.d("JSON LOG","DATA: " data.toString());
try{
jsonObj = XML.toJSONObject(xml);
JSONArray jArray = jsonObj.getJSONArray("user");
for (int i = 0 ; i < jArray.length(); i ){
JSONObject jsonObject = jArray.getJSONObject(i);
String id = jsonObject.getString("id");
Log.d("JSON LOG","ID: " id);
String name = jsonObject.getString("name");
Log.d("JSON LOG","NAME: " name);
String sname = jsonObject.getString("surname");
Log.d("JSON LOG","SNAME: " sname);
}catch(JSONException e){
Log.e("JSON Exception",e.getMessage());
e.printStackTrace();
}
}//end void
Я получил следующую ошибку от catch
—> E/JSON Exception: No value for user
Ответ №1:
Добавьте следующую строку перед JSONArray jArray = jsonObj.getJSONArray("user");
JSONObject jObj1 = jsonObj.getJSONObject("data");
Ваш user
JSONArray находится внутри JSONObject data
.
Комментарии:
1. Отлично ! Это работает. Большое спасибо!