Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同结构的JSON-Android_Android_Json - Fatal编程技术网

不同结构的JSON-Android

不同结构的JSON-Android,android,json,Android,Json,我得到了不同结构的JSON。一个是画廊,另一个不是 第一:(没有画廊) 第二个JSON(带图库) 我将此JSON放入如下数组: data = whole JSON file, which I get from web service JSONObject jRealObject = new JSONObject(data); title = jRealObject.getString("title").toString(); text = jRealObject.getString("full

我得到了不同结构的JSON。一个是画廊,另一个不是

第一:(没有画廊)

第二个JSON(带图库)

我将此JSON放入如下数组:

data = whole JSON file, which I get from web service
JSONObject jRealObject = new JSONObject(data);

title = jRealObject.getString("title").toString();
text = jRealObject.getString("fulltext").toString();

JSONArray jArray = jRealObject.getJSONArray("gallery");
for (int i = 0; i < jArray.length(); i++) {
    gallery.add(jArray.getString(i));
}   

JSONArray jArray = jRealObject.getJSONArray("related_articles");
for (int i = 0; i < jArray.length(); i++) {
    jRealObject = jArray.getJSONObject(i);

    relatedId[i] = jRealObject.getString("id").toString();
    relatedTitle[i] = jRealObject.getString("title").toString();
    relatedImage[i] = jRealObject.getString("image_name").toString();
}
如何检查JSON中是否有“gallery”?

JSONArray jArray=jRealObject.optJSONArray(“gallery”,null);
    JSONArray jArray = jRealObject.optJSONArray("gallery",null);

if(jArray != null)

    for (int i = 0; i < jArray.length(); i++) {
        gallery.add(jArray.getString(i));
    }   
if(jArray!=null) for(int i=0;i
您可以使用该库,该库是对对象的json解析,功能非常强大

这里有一个示例,您可以用json响应实现这个库


是的,谢谢,但您不需要添加null,只需:JSONArray jArray=jRealObject.optJSONArray(“gallery”);是的,这是可选的:)谢谢,我查一下:)
data = whole JSON file, which I get from web service
JSONObject jRealObject = new JSONObject(data);

title = jRealObject.getString("title").toString();
text = jRealObject.getString("fulltext").toString();

JSONArray jArray = jRealObject.getJSONArray("gallery");
for (int i = 0; i < jArray.length(); i++) {
    gallery.add(jArray.getString(i));
}   

JSONArray jArray = jRealObject.getJSONArray("related_articles");
for (int i = 0; i < jArray.length(); i++) {
    jRealObject = jArray.getJSONObject(i);

    relatedId[i] = jRealObject.getString("id").toString();
    relatedTitle[i] = jRealObject.getString("title").toString();
    relatedImage[i] = jRealObject.getString("image_name").toString();
}
W/System.err(30635): org.json.JSONException: No value for gallery
    JSONArray jArray = jRealObject.optJSONArray("gallery",null);

if(jArray != null)

    for (int i = 0; i < jArray.length(); i++) {
        gallery.add(jArray.getString(i));
    }