我在网络服务部门工作。现在我想从json对象获取值,因此我创建了一个解析器类并传递json对象。在System.out.println(“ main object” + mainObj)中,我得到了json对象。但是在if(mainObj!= null)中,我得到了false。因此其余代码无法正常工作。这里的返回类型始终为null。

以下是我的代码,

解析器类

public class JSONParser {

    private Context mContext;
    public JSONParser(Context context)
    {
        mContext=context;
    }
    public JSON_Parser_Registration[] ObjectReturner(String result)
    {
        JSON_Parser_Registration[] mJSONObj=null;
        try
        {
            JSONObject mainObj = new JSONObject(result);
            System.out.println("main object"+mainObj);
            if(mainObj!=null)
            {
                JSONArray list = mainObj.getJSONArray("result");
                System.out.println("list values"+list);
                if(list != null)
                {
                    mJSONObj=new JSON_Parser_Registration[list.length()];
                    for(int i = 0; i < list.length();i++)
                    {
                        JSONObject elem = list.getJSONObject(i);
                        System.out.println("element values"+elem);
                        if(elem != null)
                        {
                            String id=elem.getString("id");
                            String msg=elem.getString("msg");
                            mJSONObj[i]=new JSON_Parser_Registration();
                            mJSONObj[i].SetValues(id, msg);
                            System.out.println("id is "+id +" \nMessage is is "+msg);

                        }
                    }
                }
            }

        }
        catch(Exception e)
        {

        }
        return mJSONObj;
    }

}


JSON_Parser_Registration类

public class JSON_Parser_Registration {

    public String mId;
    public String mMessage;


    public void SetValues(String id,String msg)
    {
        mId=id;
        mMessage=msg;

    }
}


JSON对象是来自服务器的这种格式

{"result":{"id":248,"msg":"AppUser added successfully"}}

最佳答案

resultJSONObject而不是JSONArray

这个

JSONArray list = mainObj.getJSONArray("result");


是错的。

{ // json object node
    "result": { // jsonobject result
        "id": 248,
        "msg": "AppUser added successfully"
    }
}


所以应该

JSONObject job = mainObj.getJSONObject("result");
String id=job.getInt("id");
String msg=job.getString("msg")

07-24 22:31