Java请求返回无键数组作为字符串,需要用领域来表示

时间:2018-09-24 14:00:43

标签: java android realm

我有一个从Java android应用程序发出的请求,该请求返回了这样的响应:

{  
    "data":[],
    "messages":{  
        "day_unavailable":{  
            "unavailable_days":[  
                "2018-09-24",
                "2018-09-25",
                "2018-09-26",
                "2018-09-27",
                "2018-09-28",
                "2018-09-29",
                "2018-09-30"
            ]
        }
    },
    "code":"",
    "status":"failed",
    "status_code":400
}

现在我可以访问消息了,但是正在努力将它们转换为领域对象。

要进行转换,我首先使用该领域对象来拾取不同的消息:

public class ChangeModelVersion extends RealmObject {

    public PaymentRequired paymentRequired;

    public DayUnavailable dayUnavailable;

    public Boolean repairsUnavailble;
}

DayUnavailable模型在这里:

public class DayUnavailable extends RealmObject {

    public String unavailableDays;
}

问题在于unavailable_days不是字符串,而是字符串数组。并且同时使用List<String>和ArrayList似乎都会导致错误。

我应该使用什么?

1 个答案:

答案 0 :(得分:-1)

只需像这样使用String[]

public class DayUnavailable extends RealmObject {

    public String[]unavailableDays;
}

或者,如果您想使用列表,则可以手动解析响应并将String放入ListArray中:

try {
   JSONObject response = new JSONObject (responseRaw);
   JSONObject messages = response.getJSONObject("messages");
   JSONObject day_unavailable = response.getJSONObject("day_unavailable");
   JSONArray unavailable_days = response.getJSONArray("unavailable_days");
   for(int i=0;i<unavailable_days.length();i++) {
      String unavailableDay = unavailable_days.getString(i);
      // loop and add it to array or arraylist
   }
} catch(Exception e) {
   e.printStackTrace();
}