Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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
Android 如何解析json数组而不使用;id";_Android_Json_Jsonobject - Fatal编程技术网

Android 如何解析json数组而不使用;id";

Android 如何解析json数组而不使用;id";,android,json,jsonobject,Android,Json,Jsonobject,下面是我在获取“id”时解析JSON的代码。如果我不给出id,那么JSON数组将不会显示。如何在没有id的情况下显示JSON 如果我没有在JSON文件中给出id,那么数组将不会显示有必要在JSON文件中给出“id”,那么如何在没有“id”的情况下解析JSONArray 此json数组不显示 { "status": 1, "data": [ { "title": "Elementary" }, { "title": "Middle"

下面是我在获取“id”时解析JSON的代码。如果我不给出id,那么JSON数组将不会显示。如何在没有id的情况下显示JSON

如果我没有在JSON文件中给出id,那么数组将不会显示有必要在JSON文件中给出“id”,那么如何在没有“id”的情况下解析JSONArray

此json数组不显示

 {
"status": 1,
"data": [
    {
        "title": "Elementary"
    },
    {
        "title": "Middle"
    },
    {
        "title": "High"
    },
    {
        "title": "Atypical"
    }
]
}
这个json数组将显示

{
"status": 1,
"data": [
    {
        "id": "1",
        "title": "Elementary"
    },
    {
        "id": "2",
        "title": "Middle"
    },
    {
        "id": "3",
        "title": "High"
    },
    {
        "id": "4",
        "title": "Atypical"
    }
]
}
代码:

        JSONObject json2 = new JSONObject(str);

        status = json2.getString("status");
        if (status.equals("1")) {
        JSONArray school = json2.getJSONArray("data");
        for (int i = 0; i < school.length(); i++) {
            JSONObject object = school.getJSONObject(i);


                     //  Category_ID.add(Long.parseLong(object.getString("id")));
            Category_name.add(object.getString("title"));

        }
JSONObject json2=新的JSONObject(str);
status=json2.getString(“status”);
如果(状态等于(“1”)){
JSONArray学校=json2.getJSONArray(“数据”);
for(int i=0;i
您正在此处访问id属性:

Category_ID.add(Long.parseLong(object.getString("id")));

当它不存在时,这将抛出一个异常。

我想您希望您的代码对这两个JSON示例都有效

您可以检查“id”是否存在,然后进行相应的解析

您可以使用以下代码执行此检查

String id = object.optString("id"); 
//JSONObject.optString("id") will return id's value if it exists or else will return empty string.
if(!"".equals(id)){
       Category_ID.add(Long.parseLong(id));
       //this code will run only when your JSON contains id       
}
else 
{
     //this code will run when your JSON doesn't have id field.
     Category_ID.add();
}

在解析json时尝试以下代码:

if(object.has("id"))
{
Category_ID.add(Long.parseLong(object.getString("id")));
}
else
{
// add default id
}


希望这对您有用。

我想解析第一个没有“ID”属性的json文件,如果我删除这行Category_ID.add(Long.parseLong(object.getString(“ID”)),并解析第一个没有“ID”属性的json文件然后无值显示。在OSN中必须给出每个数组元素的id??对。您还可以编写一些代码,仅在JSON中提供id时获取id。不,我的问题是,如果JSON数组没有“id”,如何解析JSON数组在android中解析jsonarray时,只需告诉我数组中的每个对象都有id?
object.getString(“id”)
…我不想解析第一个json文件,它只有“title”没有“id”我将如何显示它???我建议你使用某种JSON解析器,例如Jackson JSON或GSON库,将这些结构映射到POJO实例上。只要告诉我,在android thave数组中,如果数组中的每个元素都是?我不理解你最后的评论。你的意思是如果不存在id,那么给出默认id??这是我在m中的问题y senario服务器在json文件中不提供“id”,只提供“标题”检查更新的答案。我已经为您提供了一个工作解决方案,该解决方案将适用于两个json示例,符合我从您的问题中了解的内容。愉快的编码。如何添加默认id//添加默认id}您可以根据需要设置默认id。