簡體   English   中英

如何在JSON中轉換日期

[英]How to convert date in json

我是json的新手。 我正在使用其中存在datetime字段的mysql查詢。我想將查詢結果轉換為json。但是對於datetime字段,我將該字段強制轉換為僅正確執行date.query並提供正確的輸出。但是當我嘗試將此結果轉換為json,其給出的錯誤與日期時間字段相關。 要在json中轉換的類是。

package com.helical.efw.json;

import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;

public class ConvertJson {
    public String CommonJson(Map<String,? extends List<?>> commonList)
    {
        String jsonString;
        System.out.println("in json locationId List=======jjjj==========");
        JSONObject json = new JSONObject();
        json.accumulateAll(commonList);
        jsonString=json.toString();
        System.out.println(json.toString());
        return jsonString;
    }
}

觸發查詢的方法:

public List<Map<String,Object>> getLastSevenDaysStageExecutionDetail()
{
    System.out.println("I am in getLastStageExecutionDetail=========");
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();
    Query query;
    List<Map<String,Object>> aliasToValueMapList=null;

    try{
        String d1="2013-12-30";
        String d2="2013-12-31";
        query =session.createSQLQuery("SELECT cast(moment as date) as dated, timestampdiff(second,moment, end_time) as t FROM efw_db.efw_job_time where moment between '"+d1+"' and '"+d2+"' group by cast(moment as date);");
        query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
        aliasToValueMapList=query.list();
        System.out.println(aliasToValueMapList.toString());
    }catch(Exception e) {
        e.printStackTrace();
    }
    return aliasToValueMapList;
} 

     Error is:

HTTP Status 500 - java.lang.reflect.InvocationTargetException

type Exception report

message java.lang.reflect.InvocationTargetException

description The server encountered an internal error that prevented it from  fulfilling   this request.

例外

    net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
    net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:818)
    net.sf.json.JSONObject._fromBean(JSONObject.java:699)
    net.sf.json.JSONObject.fromObject(JSONObject.java:172)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:274)
    net.sf.json.JSONObject._processValue(JSONObject.java:2655)
    net.sf.json.JSONObject.processValue(JSONObject.java:2721)
    net.sf.json.JSONObject.setInternal(JSONObject.java:2736)
    net.sf.json.JSONObject.setValue(JSONObject.java:1424)
    net.sf.json.JSONObject._fromMap(JSONObject.java:1168)
    net.sf.json.JSONObject.fromObject(JSONObject.java:163)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:274)
    net.sf.json.JSONArray._processValue(JSONArray.java:2513)
    net.sf.json.JSONArray.processValue(JSONArray.java:2538)
    net.sf.json.JSONArray.addValue(JSONArray.java:2525)
    net.sf.json.JSONArray._fromCollection(JSONArray.java:1056)
    net.sf.json.JSONArray.fromObject(JSONArray.java:123)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:240)
    net.sf.json.JSONObject._processValue(JSONObject.java:2655)
    net.sf.json.JSONObject.processValue(JSONObject.java:2721)
    net.sf.json.JSONObject.setInternal(JSONObject.java:2736)
    net.sf.json.JSONObject._accumulate(JSONObject.java:2635)
    net.sf.json.JSONObject.accumulate(JSONObject.java:1560)
    net.sf.json.JSONObject.accumulateAll(JSONObject.java:1582)
    net.sf.json.JSONObject.accumulateAll(JSONObject.java:1564)
    com.helical.efw.view.StageExecution.LastSevenDaysStageWiseExecution(StageExecution.java:70)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)

root cause

java.lang.reflect.InvocationTargetException
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
    org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1132)
    org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
    org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
    org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
    net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:749)
    net.sf.json.JSONObject._fromBean(JSONObject.java:699)
    net.sf.json.JSONObject.fromObject(JSONObject.java:172)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:274)
    net.sf.json.JSONObject._processValue(JSONObject.java:2655)
    net.sf.json.JSONObject.processValue(JSONObject.java:2721)
    net.sf.json.JSONObject.setInternal(JSONObject.java:2736)
    net.sf.json.JSONObject.setValue(JSONObject.java:1424)
    net.sf.json.JSONObject._fromMap(JSONObject.java:1168)
    net.sf.json.JSONObject.fromObject(JSONObject.java:163)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:274)
    net.sf.json.JSONArray._processValue(JSONArray.java:2513)
    net.sf.json.JSONArray.processValue(JSONArray.java:2538)
    net.sf.json.JSONArray.addValue(JSONArray.java:2525)
    net.sf.json.JSONArray._fromCollection(JSONArray.java:1056)
    net.sf.json.JSONArray.fromObject(JSONArray.java:123)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:240)
    net.sf.json.JSONObject._processValue(JSONObject.java:2655)
    net.sf.json.JSONObject.processValue(JSONObject.java:2721)
    net.sf.json.JSONObject.setInternal(JSONObject.java:2736)
    net.sf.json.JSONObject._accumulate(JSONObject.java:2635)
    net.sf.json.JSONObject.accumulate(JSONObject.java:1560)
    net.sf.json.JSONObject.accumulateAll(JSONObject.java:1582)
    net.sf.json.JSONObject.accumulateAll(JSONObject.java:1564)
    com.helical.efw.view.StageExecution.LastSevenDaysStageWiseExecution(StageExecution.java:70)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)

root cause

java.lang.IllegalArgumentException
    java.sql.Date.getHours(Date.java:177)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
    org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1132)
    org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
    org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
    org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
    net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:749)
    net.sf.json.JSONObject._fromBean(JSONObject.java:699)
    net.sf.json.JSONObject.fromObject(JSONObject.java:172)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:274)
    net.sf.json.JSONObject._processValue(JSONObject.java:2655)
    net.sf.json.JSONObject.processValue(JSONObject.java:2721)
    net.sf.json.JSONObject.setInternal(JSONObject.java:2736)
    net.sf.json.JSONObject.setValue(JSONObject.java:1424)
    net.sf.json.JSONObject._fromMap(JSONObject.java:1168)
    net.sf.json.JSONObject.fromObject(JSONObject.java:163)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:274)
    net.sf.json.JSONArray._processValue(JSONArray.java:2513)
    net.sf.json.JSONArray.processValue(JSONArray.java:2538)
    net.sf.json.JSONArray.addValue(JSONArray.java:2525)
    net.sf.json.JSONArray._fromCollection(JSONArray.java:1056)
    net.sf.json.JSONArray.fromObject(JSONArray.java:123)
    net.sf.json.AbstractJSON._processValue(AbstractJSON.java:240)
    net.sf.json.JSONObject._processValue(JSONObject.java:2655)
    net.sf.json.JSONObject.processValue(JSONObject.java:2721)
    net.sf.json.JSONObject.setInternal(JSONObject.java:2736)
    net.sf.json.JSONObject._accumulate(JSONObject.java:2635)
    net.sf.json.JSONObject.accumulate(JSONObject.java:1560)
    net.sf.json.JSONObject.accumulateAll(JSONObject.java:1582)
    net.sf.json.JSONObject.accumulateAll(JSONObject.java:1564)
    com.helical.efw.view.StageExecution.LastSevenDaysStageWiseExecution(StageExecution.java:70)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.37 lo

請回復我

您始終可以提供自己的JsonValueProcessor來實現所需的編碼。 我決定使用getTime()方法將日期編碼為自格林尼治標准時間1970年1月1日00:00:00起經過的毫秒數。

這是一些示例代碼:

JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(java.util.Date.class, new JsonValueProcessor() {

    @Override
    public Object processArrayValue(Object value, JsonConfig jsonConfig) {
        Date[] dates = (Date[])value;
        Long[] result = new Long[dates.length];
        for (int index = 0; index < dates.length; index++) {
            result[index] = dates[index].getTime();
        }
        return result;
    }

    @Override
    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
        Date date = (Date)value;
        return date.getTime();
    }

});

然后,您可以創建一個JSONObject ,如下所示:

Map<String, Object> data = new HashMap<String, Object>();
data.put("myDate", new Date());
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( data, config );

在JSON-Lib中,有一個JsDateJsonBeanProcessor,但是它可以轉換為

{
"minutes": 13,
"seconds": 14,
"hours": 12,
"month": 5,
"year": 2007,
"day": 17,
"milliseconds": 150
}

Jackson JSON Processor更靈活,默認情況下它以毫秒為單位寫入日期,但是您也可以將其配置為使用ISO-8601格式,請參見http://wiki.fasterxml.com/JacksonFAQDateHandling

這個答案是針對Gson的Java的Google Json庫。

首先創建一個類型轉換器類,如下所示

https://sites.google.com/site/gson/gson-type-adapters-for-common-classes-1

假設您使用的是joda time,並且類型轉換器類名為DateTimeTypeConverter,然后像這樣創建Gson對象

 GsonBuilder builder = new GsonBuilder();
 builder.registerTypeAdapter(DateTime.class, new DateTimeTypeConverter());
 Gson gson = builder.create();                    

我以這種方式工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM