WCF Windows サービスにオブジェクトの配列を要求していますが、これらのオブジェクトには DateTime 型が含まれています。Android アプリケーションが JSONObject メッセージ内のオブジェクトからデータを読み取ろうとすると、次のようになります。
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);
}
ブラウザでリクエストを実行したときの結果