将xml转换为json并提取数据

时间:2016-10-14 15:36:38

标签: 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 ---&gt;收到以下错误E/JSON Exception: No value for user

1 个答案:

答案 0 :(得分:1)

JSONArray jArray = jsonObj.getJSONArray("user");

之前添加以下行
JSONObject jObj1 = jsonObj.getJSONObject("data");

您的user JSONArray位于JSONObject data内。