我在网络服务部门工作。现在我想从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"}}
最佳答案
result
是JSONObject
而不是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")