Android 解析json字符串时,无法将org.json.JSONObject$1转换为JSONObject错误
为了解析json,我使用JSONArray和JsonObject:Android 解析json字符串时,无法将org.json.JSONObject$1转换为JSONObject错误,android,json,android-json,Android,Json,Android Json,为了解析json,我使用JSONArray和JsonObject: protected void parseJson() { JSONObject object=null; try { object=new JSONObject(json); myArray=object.getJSONArray(MY_ARRAY); Log.e("Array Length",""+myArray
protected void parseJson()
{
JSONObject object=null;
try {
object=new JSONObject(json);
myArray=object.getJSONArray(MY_ARRAY);
Log.e("Array Length",""+myArray.length());
key_id=new String[myArray.length()];
key_name=new String[myArray.length()];
for (int i=0;i<=myArray.length();i++)
{
JSONObject fetchObject=myArray.getJSONObject(i);
key_id[i] = fetchObject.getString(KEY_ID);
key_name[i] = fetchObject.getString(KEY_NAME);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
我的问题是,当fetchObject获取空对象时,它给我的org.json.JSONObject$1
不能在try-catch中转换为JSONObject。
请帮助我如何解决这个问题…谢谢阅读
if(obj.length() == 0)
这就是我要做的
JSONObject fetchObject;
if(flowerArray.getJSONObject(i).length() !=0)
/
在阅读了JsonArray和JsonObject文档之后,我理解了如何解决这个问题
protected void parseJson()
{
JSONObject object=null;
try {
object=new JSONObject(json);
myArray=object.getJSONArray(MY_ARRAY);
Log.e("Array Length",""+myArray.length());
key_id=new String[myArray.length()];
key_name=new String[myArray.length()];
for (int i=0;i<=myArray.length();i++)
{
JSONObject fetchObject=myArray.optJSONObject(i);
if(fetchObject==null)
{
//do nothing
}
else
{
key_id[i] = fetchObject.getString(KEY_ID);
key_name[i] = fetchObject.getString(KEY_NAME);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
protectedvoidparsejson()
{
JSONObject对象=null;
试一试{
对象=新的JSONObject(json);
myArray=object.getJSONArray(MY_数组);
Log.e(“数组长度”,“myArray.Length());
key_id=新字符串[myArray.length()];
key_name=新字符串[myArray.length()];
对于(int i=0;iWhy你这么努力地解析代码而不是像GSON is Jackson那样使用json解析库?你的json结构在说其他的东西,而你的代码在做其他的事情,这看起来很可疑,为什么api的家伙会给你一个null???你可以问如果key和myval是空的,他们可以给出像{“key”:1这样的空字符串,“myval”:“}那么你的问题就解决了Hello Manish-我会尽快来找你:)让我试试这个事实上这正是nzala让你试试的:):+1:对你nzala
fetchObject = flowerArray.getJSONObject(i)
if(fetchObject== null)
protected void parseJson()
{
JSONObject object=null;
try {
object=new JSONObject(json);
myArray=object.getJSONArray(MY_ARRAY);
Log.e("Array Length",""+myArray.length());
key_id=new String[myArray.length()];
key_name=new String[myArray.length()];
for (int i=0;i<=myArray.length();i++)
{
JSONObject fetchObject=myArray.optJSONObject(i);
if(fetchObject==null)
{
//do nothing
}
else
{
key_id[i] = fetchObject.getString(KEY_ID);
key_name[i] = fetchObject.getString(KEY_NAME);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}