博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何解决jersey框架中以json格式返回数组,当数组中元素一个时json格式不对
阅读量:6829 次
发布时间:2019-06-26

本文共 1224 字,大约阅读时间需要 4 分钟。

原文地址:http://www.cnblogs.com/swpk/p/3566536.html?utm_source=tuicool

 

jersey 是oracle 出的一个较好的REST框架。使用此框架方便地为我们架设Rest服务。它可以作为一个数据接口的框架,根据配置及请求参数,可灵活地返回不同格式的数据。

若不会搭建,亲参考站内的如何搭建请参考《如何搭建jersey的REST应用》文章。

  本人在使用jersey框架中遇到一个问题比较棘手,就是当以json格式返回数组,同时数组中元素只有一个时,返回json格式数据不是我们期望的。错误现象如下:

{  "ResultCode": "00000",  "ResultDesc": "成功",  "Count": "4",  "PageCount": "4",  "CountInPage": "1",  "PageIndex": "1",  "Languages": {    "Language": {      "PKID": "7",      "Name": "国语",      "Description": "国语"    }  }}

 

以上是单个数据时,框架返回的json数据,我们期望的是Language数组,而不是Language对象。

 

当返回的数组中是多个数据(即本示例中返回多个语言)时,返回格式正常。正确现象如下:

{  "ResultCode": "00000",  "ResultDesc": "成功",  "Count": "4",  "PageCount": "4",  "CountInPage": "1",  "PageIndex": "1",  "Languages": {    "Language": [      {        "PKID": "7",        "Name": "国语",        "Description": "国语"      }    ]  }}

 

解决方案:

 

在web.xml中Jersey的拦截器进行配置,增加 org.codehaus.jackson.jaxrs 参数值,样例如下:

 

见证奇迹的时刻到了:)

{  "ResultCode": "00000",  "ResultDesc": "成功",  "Count": 4,  "PageCount": 4,  "CountInPage": 1,  "PageIndex": 1,  "Languages": {    "Language": [      {        "PKID": 7,        "Name": "国语",        "Description": "国语"      }    ]  }}

 

以上内容希望对大家有帮助。

 

转载于:https://www.cnblogs.com/dyh004/p/7904658.html

你可能感兴趣的文章
perl chomp 函数的真正作用
查看>>
python数字图像处理(14):高级滤波
查看>>
extern c
查看>>
(Question)CSS中position的绝对定位问题
查看>>
在html中禁用自己主动完毕
查看>>
寒哥细谈之AutoLayout全解
查看>>
模拟点击网页指定文字
查看>>
使用struts2和poi导出excel文档
查看>>
[每日菜单]lunch menu for Wednesday, February 24 2016
查看>>
【Xamarin挖墙脚系列:配置Mac之间的连接问题】
查看>>
Intel大坑之中的一个:丢失的SSE2 128bit/64bit 位移指令,马航MH370??
查看>>
PopupWindow分享页面
查看>>
删除数组中某个元素
查看>>
一个屌丝程序猿的人生(七)
查看>>
安装ubuntu和安装ubuntu后要安装的软件列表
查看>>
设置控件全局显示样式 appearance
查看>>
Java集合类:AbstractCollection源码解析
查看>>
Incorrect key file for table './xx_db/xx_table.MYI'; try to repair it
查看>>
自定义jQuery插件Step by Step
查看>>
linux下编译安装apache
查看>>