首页 > PHP资讯 > HTML5培训技术 > bean转换成json中遇到的一些问题~

bean转换成json中遇到的一些问题~

HTML5培训技术
bean转换成json中遇到的一些问题~
1.选用哪种框架好?
个人经验和网上数据表明,解析和转换速率
jackson>gson>json-lib
不过个人觉得jackson虽然功能强大且速度快,但是不推荐使用,感觉引入后代码比较冗余复杂。
所以本人比较推荐阿里巴巴的 fastjson,小巧易用,且迅速!
 
2.当需求json串中的key值首写字母为大写字母时,貌似只有fastjson有对应的解决方案!
[plain]  
"checksum_seg": [  
           {  
               "ACity": "SHA",  
               "ACityID": "2",  
               "ACityName": "上海",  
               "APort": "PVG",  
               "APortName": "浦东国际机场",  
               "ATime": "2120",  
               "ATimeString": "21:20",  
               "AirLineName": "东方航空",  
               "Airline": "MU",  
               "AirlineCode": "MU",  
               "CraftType": "323",  
               "DCity": "BJS",  
               "DCityID": "1",  
               "DCityName": "北京",  
               "DPort": "PEK",  
               "DPortName": "首都国际机场",  
               "DTime": "1905",  
               "DTimeString": "19:05",  
             ......           }  
其中ACity、ACityID中首写字母均为大写字母,在json转义,通过java反射机制,会将其手写字母默认转为大写字母,生成的json串为:
[plain]  
checksum_segs_List":[{"aCity":"SHA","aCityID":"2",......  
 
要解决,需要处理两个问题:
问题一,是在写bean的时候,并不能按照elipse默认生成的get/set方法的方式,需要手写调整:
[java]  
public String getACity() {  
    return ACity;  
}  
public void setACity(String ACity) {  
    this.ACity = ACity;  
}  
问题二,问最关键一步,网上也有人碰见这样的问题。这时需要将 该属性置为public ,这样fastjson能读取bean的属性名称,而不会通过反射机制来自动拼装属性对应key值
[java] 
public String ACity;  
    public String ACityID;  
    public String ACityName;  
    public String APort;  
    public String APortName;  
......  
紧接着,需要删除eclipse生成的get方法!!!
 
综上所诉,个人在处理json串转换的问题上,倾向与使用fastjson。
 

HTML5培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持17不支持0