jsonobject转list对象,jsonobject转对象
在最近的项目中,需要将list传输到json并返回到页面显示,因此出现了问题:
net.SF.JSON.JSON exception : Java.lang.reflect.invocationtargetexceptionatnet.SF.JSON.JSON object._ frombbbect ject.Java:182 ) at net.SF.JSON.JSON object._ process value ) JSON.jsononobject._ process value at net.SF.JSON at net.SF.JSON.JSON object.setvalue ) JSON at net.SF.JSON.JSON object._ from bean (JSON object.Java 3360725 ) at NECT at net.SF.JSON.JSON array._ process value (JSON array.Java 33602294 ) at net.SF.JSON.JSON array.process value ) jsson . Java33602312 ) at net.SF.JSON.JSON array._ from collection ) jsom at net.SF.JSON.JSON array.from object (JSON arararay
谷歌一下后,发现list的数据有java.sql.date类型,json的转换需要java.util.date。 所以转换报告错误。 list中的数据包含java.sql.time时也有同样的错误。 别多嘴,说一下怎么解决。 JSON jar包提供了一种扩展JSON转换处理类的方法。 扩展类必须实现JsonValueProcessor,代码如下
导入Java.SQL.time;
导入Java.text.simple date format;
import java.util.Date;
import java.util.Locale;
import net.sf.json.JsonConfig;
import net.SF.JSON.processors.jsonvalueprocessor;
publicclassjsondatevalueprocessorimplementsjsonvalueprocessor {
隐私保护格式=' yyyy-mm-ddhh : mm : ss ';
隐私保护格式2=' hh : mm : ss ';
publicobjectprocessarrayvalue (对象值,JSON配置配置) {
返回进程(value;
}
publicobjectprocessobject value (字符串密钥、对象值、JSON配置配置) {
返回进程(value;
}
私有对象处理(对象值) {
if(valueinstanceofdate ) {
simpledateformatsdf=newsimpledateformat (格式,Locale.UK;
返回SDF.format (value;
}
价值执行时间(if ) {
simpledateformatsdf=newsimpledateformat (格式2,Locale.UK;
返回SDF.format (value;
}
返回值==null? ' ' : value.toString (;
}
}
转换JSON时如下所示。
jsonobjectjsonarray=newjsonobject (;
jsonconfigjsonconfig=newjsonconfig (;
JSON config.registerjsonvalueprocessor (Java.util.date.class,new JsonDateValueProcessor ) );
Jon config.registerjsonvalueprocessor (Java.SQL.time.class,new JsonDateValueProcessor ) );
jsonarrayjsonobj=JSON array.from object (userlist,jsonConfig );