`
erichua
  • 浏览: 510318 次
  • 性别: Icon_minigender_2
  • 来自: 远方
社区版块
存档分类
最新评论

Spring JsonView--对输出对象属性的过滤

阅读更多
由于Spring中的对象可以获取子对象,但json输出的时候会一股脑全部输出。默认的sojo还问题不大,因为它只输出一层。而jsonlib可能就要报错了。
还好spring jsonView中提供了属性过滤的功能。
1.在xml中明确使用JsonConfigSupport
<bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView">
		<property name="jsonWriter">
			<ref bean="sojoJsonWriter" />
		</property>
		<property name="jsonErrors">
			<list>
				<ref bean="statusError" />
				<ref bean="modelflagError" />
			</list>
		</property>
	</bean>
	<bean name="sojoJsonWriter"
		class="org.springframework.web.servlet.view.json.writer.sojo.SojoJsonStringWriter">
		[color=red]<property name="enableJsonConfigSupport">
			<value>true</value>
		</property>[/color]
	</bean>

2.在代码中加入绑定
@InitBinder
	protected void initBinder(HttpServletRequest request,
			ServletRequestDataBinder binder) throws Exception {
		JsonWriterConfiguratorTemplateRegistry registry = JsonWriterConfiguratorTemplateRegistry
				.load(request);
		registry
				.registerConfiguratorTemplate(new SojoJsonWriterConfiguratorTemplate() {

					@Override
					public SojoConfig getJsonConfig() {
						
						SojoConfig config = new SojoConfig();
						String[] excludes ={"roles"};
						config.setExcludedProperties(excludes);

						return config;
						
					}
				});
	}

这样就可以了。jsonlib的差不多。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics