我正在使用web服务。现在我想从json对象获取值,所以我创建了一个解析器类并传递了json对象。在System.out.println(“main object”+ mainObj)中我得到了json object.But in if(mainObj!= null)我得到了false。所以剩下的代码没有用。返回类型总是为null。
以下是我的代码,
Parser Class
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 class
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"}}
答案 0 :(得分:2)
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")
答案 1 :(得分:0)
答案 2 :(得分:0)
使用此代码
JSONObject elem =new JSONObject(list.getJSONObject(i));
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);
}