如何在android中解析单个json对象

时间:2016-12-08 10:10:57

标签: android json android-studio

我是android和JSON的新手。 我正在尝试获取JSON数据(下面一个):

{" user":[{" id":" 001"," name":" Raj Amal&#34 ;,"电子邮件":" raj.amalw@gmail.com" }]}

并在其中一个android应用程序文本视图中使用其数据。 那么我该如何解决上述问题呢。

我已尝试过以下代码,但它给出了异常。 请帮忙。

    {
    try{
            JSONObject obj=new JSONObject(jsonString);
            //Log.i(TAG,obj.getString(TAG_ID));
            String iid = obj.getString(TAG_ID);
            Log.i(TAG,iid);
            final TextView CardBalanceID = (TextView) findViewById(R.id.CardBalanceID);
            CardBalanceID.setText(iid);

       }catch(JSONException e){
        Log.i(TAG,"EXCEPTION");
        e.printStackTrace();}
}

2 个答案:

答案 0 :(得分:0)

我已更新您的代码尝试此操作。

 {
        try{
                JSONObject obj=new JSONObject(jsonString);
                //Log.i(TAG,obj.getString(TAG_ID));
                JSONArray jsnArry = obj.getJSONArray("user");
                // if you have more than 1 object in Array 
                // then loop is needed otherwise you can use directly 0th item.
                for(int i=0;i<jsnArry.length();i++){ 
                    JSONObject jsnObj = jsnArray.getJSONObject(i);
                    String iid = jsnObj .getString(TAG_ID);
                }

                Log.i(TAG,iid);
                final TextView CardBalanceID = (TextView) findViewById(R.id.CardBalanceID);
                CardBalanceID.setText(iid);

           }catch(JSONException e){
            Log.i(TAG,"EXCEPTION");
            e.printStackTrace();}
    }

答案 1 :(得分:0)

您的id对象位于user数组中。所以你首先需要解析那个数组。请尝试以下代码。

 try{
        JSONObject obj=new JSONObject(jsonString);
        JSONArray jArray = obj.getJSONArray("user");
        String iid = jArray.getJSONObject(0).getString(TAG_ID);
        Log.i(TAG,iid);
        final TextView CardBalanceID = (TextView) findViewById(R.id.CardBalanceID);
        CardBalanceID.setText(iid);

    }catch(JSONException e){
        Log.i(TAG,"EXCEPTION");
        e.printStackTrace();}


}