Fastjson: 新增加的FastJsonProvider要怎么使用?

Created on 24 Apr 2016  ·  19Comments  ·  Source: alibaba/fastjson

想换掉容器提供的json解析,新版本增加的FastJsonProvider要怎么使用?

Most helpful comment

All 19 comments

@VictorZeng 你支持一下?

See applicationContext-rest.xml this is a Apache Cxf config with spring example

@VictorZengwiki中写一个使用介绍吧

这个问题一直困扰我,我们是netbeans创建的maven web应用程序,用的自带的glassfish容器,发现输出的json各种问题,所以想换成熟悉的fastjson。
上面的答复 还有FastJsonProvider原作者提供的说明 都不能直接用,找不到provider和feature在哪register,容器太封闭了:(

@yancoo 你使用的JAR-RS实现是什么,我这里用的是Apache CXF.

jersey

@VictorZeng 最好你能在netbeans里试试,默认输出的json很多时候问题一大堆,javaee的东西包装的太死导致跟不进去((

@VictorZeng can you write another english doc? such as 'FastJsonProvider_cn' in wiki.

@wenshao Okay~

我觉得很不清晰,如果单独用Jersey,不会这么麻烦,使用的是NetBeans+Glassfish,Jersey这层是不可见的,虽然用的是Jersey。。。

我到现在都不知道 怎么 去register Feature、Provider。。。

http://stackoverflow.com/questions/20709827/force-glassfish-4-to-use-jackson-2-3
这个链接和我遇到的情况类似,今天太晚,我找时间试下 @VictorZeng

@yancoo Jersey的官网已经说明了 Provider和Application等可以根据配置自动扫描 你的问题是在IDE和Server中如何使用Jersey 自己再试试吧 别做伸手党

我的问题不是在IDE和Server中如何使用Jersey,是Glassfish容器包了我本不该关心的Jersey,而Jersey默认的json输出是有问题的(List、Map未声明元素类型或泛型时,元素会按toString方法输出,而不是正常json输出)。

没有调查就没发言权,伸手党是你自认为的,你还缺少点开源精神,为什么不去试试非Apache CXF环境怎么用好你们新版本莫名其妙增加的FastJsonProvider?这样让大家更多、更便捷去用FastJson不更好么?我也是暂时被迫用这类无法进一步跟踪调试的JavaEE框架,不然早就用其他Java Web框架写完,甚至是Netty Http实现。这次若不是前几年就开始用FastJson,早就去用Jackson了 @VictorZeng @wenshao

你给的Jersey链接 早就看过了,Jersey自己用的json库有上面提的问题,给的Jackson库替换也是过低的版本,而且也没说明清楚怎么使用ResourceConfig,我已经按我上面给的链接解决了json库替换问题,总算可以在REST这层用FastJson了。

对了,我看了下你们为此增加的wiki,我不知道Apache CXF 有多少人用,但这wiki写的能让大家直接放弃用FastJsonProvider,一堆的yours你让大家用还是不用。。。

@yancoo 我也希望能做好,只是不熟悉JAX-RS,就把smallnest做的实现copy进来,并且让@VictorZeng帮忙改进。在这方面我不是专家,需要大家一起来改进,希望你也能出一份力。

几个信息供参考:

  • 需要集成smallnest提供的FastJsonFeature,disable Jersey默认提供的json provider,同时register FastJsonProvider.class。
  • 你们更新还比较快,之前的1.2.9 FastJsonProvider没有考虑charset,所以中文有乱码,现在1.2.11 ok了。
  • GlassFish集成的Jersey只能 register FastJsonFeature.class,而FastJsonFeature内部通过configure方法 register FastJsonProvider.class ,是不能直接实例化的(包括FastJsonConfig),所以如何使用定制serializer、dateformat等需要考虑下解决办法 @wenshao,既要保留REST这层json转换定制的独立性,也不干扰其他逻辑可定制json格式。

最近两年都是极忙,最近一个多月才能抽出较多时间来维护。FastjsonProvider这一块,我需要帮助,如果你有好的建议,希望能够提交patch,一起来做好。

@yancoo 放假这几天没收邮件,简单说几句吧。

  • 关于技术:每个开发者都有自己擅长和不擅长的领域,专心做好自己想做的就很好,温少已经贡献了很多优秀的开源项目(druid/fastjson/...),在此表示钦佩。
  • 关于开源:有没有开源精神其实看态度就可以,你能提出建议很好,但是你的态度让我感觉你是在给一个开源项目提需求。
  • 关于项目:FastJsonProvider只是一个基于JAX-RS标准Provider的实现,为了能够让其他开发者能在具体JAX-RS实现技术中使用FastJson对数据Serialize and Deserialize,但FastJson并不是JAX-RS的实现技术,不需要也不应该考虑JAX-RS与Server的集成问题,你去看看Jackson的源码里面有没有实现JAX-RS的Feature。
  • 关于标准:JAX-RS的实现技术有很多(CXF/Jersey/RESTEasy/...),CXF有多少人用我也不知道,但是你觉得是用Apache的人多呢,还是GlassFish的多呢。
  • 关于个人:如果你的技术架构不可更改,也希望你帮助解决这个问题,提交patch分享一下,no coding no life.
  • 我觉得这个Issue可以关闭了。

最后发个广告,一个消息队列的客户端框架,欢迎来拍砖~
http://darkphoenixs.org/message-queue-client-framework/

Was this page helpful?
0 / 5 - 0 ratings

Related issues

viennadd picture viennadd  ·  3Comments

liubailin2017 picture liubailin2017  ·  4Comments

KeZhimin picture KeZhimin  ·  3Comments

luckydzp picture luckydzp  ·  4Comments

sd4324530 picture sd4324530  ·  3Comments