Я прошу WCF Windows Service создать массив объектов, и эти объекты содержат тип DateTime. Когда мой Android приложение пытается прочитать данные из объекта, который находится в сообщении JSONObject ниже:Unparsable Date в Android Volley JsonArrayRequest
Вход в Windows:
11/6/2014 1:42:00 PM
Затмение Вход
Unparseable date: "/Date(1415205000000-0200)/" (at offset 0)
Android Метод запроса
private void GetEventos(String url)
{
showProgressDialog();
JsonArrayRequest req = new
JsonArrayRequest(url, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response){
Log.d(TAG, String.valueOf(response.length()));
try
{
Evento evento;
for (int i = 0; i < response.length(); i++)
{
JSONObject jsonobject = response.getJSONObject(i);
evento = new Evento();
evento.setId(jsonobject.getInt("Id"));
evento.setNome(jsonobject.getString("Nome"));
evento.setIdMonitorado(jsonobject.getInt("IdMonitorado"));
//Test
SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = dt.parse(jsonobject.getString("DataHora"));
Log.d(TAG, "DATA: " + date);
//evento.setDataHora(DateTime.parse(jsonobject.getJSONObject("DataHora")));
evento.setDuracao(jsonobject.getInt("Duracao"));
evento.setLatitudeDoLocal(Float.parseFloat(jsonobject.getString("LatitudeDoLocal")));
evento.setLongitudeDoLocal(Float.parseFloat(jsonobject.getString("LongitudeDoLocal")));
evento.setReceberNotificacao(jsonobject.getBoolean("ReceberNotificacao"));
evento.setNomeCidade(jsonobject.getString("NomeCidade"));
evento.setNomeUF(jsonobject.getString("NomeUF"));
_dataSoruceEvento.add(evento);
Log.d(TAG, evento.getDataHora().toString());
}
}catch(Exception ex){
Log.d(TAG, ex.getMessage().isEmpty() ? "Exception Null" : ex.getMessage());
}
hideProgressDialog();
//DataBindMonitorados(_dataSourceMonitorados);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
hideProgressDialog();
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(req, tag_json_arry);
}
Результаты, когда я выполняю запрос в браузере
После кодирования в формате JSON, вы теряете всю объектность любого оригинала: все, что вы получаете, - это строковое представление этого объекта. Не имеет значения, был ли это объект datetime или какой-либо его тип на исходной машине. Теперь это всего лишь текст, и вам нужно будет указать код Android для разбора любого формата, в котором находится текст. –