zoukankan      html  css  js  c++  java
  • 如何解决jersey框架中以json格式返回数组,当数组中元素一个时json格式不对

    原文地址: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": "国语"
          }
        ]
      }
    }

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

  • 相关阅读:
    集群技术
    Docker Swarm(一)
    服务器集群
    生产环境swarm集群规划和管理
    集群的分类
    Arcengine C#开发源码
    BIOS设置中开启cpu睿频功能
    aida64怎么用?aida64最详细的使用教程
    SQL Server2019最大并行度
    IIS 之 在IIS7、IIS7.5中应用程序池最优配置方案
  • 原文地址:https://www.cnblogs.com/dyh004/p/7904658.html
Copyright © 2011-2022 走看看