⑴ java中怎么过滤没有用的字段返回到前台的数据
1 不用框架
传统方式用jdbc读取数据库数据到resultset,
a 通过json工具内:将resultset中数据写到容list里,通过json工具(如fastjson)转换成json字符串,返回到前台
b 直接通过resultset吧数据拼写成json格式字符串写到前台
2 框架
如struts2+spring, jdbctemple支持将读取结果直接返回给list, 将result类型设置生json即可,前台可直接获取json数据
⑵ 急,请问抠网页的时候怎样去掉json格式的数据,比如京东主页,一大堆都是json格式数据
以前在培训的时候,学到的页面要获取json的内容,那么我们要在action里使用这样一些内容
PrintWriter out = response.getWriter();
现在发现有root这么一个参数可以处理,就可以省略上面的这种写法,这样看似上去是不是更加方便呢。
看我下面标红的地方
struts2 处理json
<package name="default" extends="struts-default">
<package name="default" extends="json-default">
.Action中的配置
<action name="testAction" class="com.json.action.TestAction" method="testMethod">
<interceptor-ref name="json" /><!--处理以JSON.前台归回的json字符串,是把action中的所有属性全数转化为json字符串归回给浏览器了,但是我有时 辰需要根据实况归回部门结果,如何对json的结果进行定制输出呢?result供给了一些参数替你解决这个问题
5.1. root参数:从归回结果中根据ognl表达式掏出你需要输出的结果
如:
action类
Java代码
public class BaseAction extends ActionSupport implements
{
private Person person = null;
}
public class BaseAction extends ActionSupport implements {private Person person = null;...}
bean类 1
Java代码
public class Person
{
private String name;
private int age;
}
Java代码
public class Person {private String name;private int age;...}
我们只要输出person对象的name属性值,配置如次
1
Java代码
<result type="json">
<param name="root">person.name</param>
</result>
<result type="json">
<param name="root">person.name</param>
</result>
5.2. excludeNullProperties 参数:表示是不是去掉空值, 默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值。
Java代码
<result type="json">
<param name="excludeNullProperties">true</param>
</result>
Java代码
<result type="json">
<param name="excludeNullProperties">true</param>
</result>
5.3. ignoreHierarchy 参数:表示是不是纰漏等级,也就是继承关系,好比:TestAction继承于BaseAction,那么TestAction中归回的json字符串默 认是不会包含父类BaseAction的属性值,ignoreHierarchy值默认为true,设置为false后会将父类以及子类的属性一起归回。
Java代码
<result type="json">
<param name="ignoreHierarchy">false</param>
</result>
<result type="json">
<param name="ignoreHierarchy">false</param>
</result>
5.4. includeProperties 参数:输出结果中需要包含的属性值,这搭正则表达式以及属性名匹配,可以用“,”分割填充多个正则表达式。
如:输出person的所有属性
Java代码
<result type="json">
<param name="includeProperties">person.*, person\.name</param>
</result>
<result type="json">
<param name="includeProperties">person.*,person\.name</param>
</result>
5.5. excludeProperties 参数:输出结果需要剔掉的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,大致相同4.4.
⑶ json如何过滤不需要的类
你是用什么语言处理JSON的object?
我因为工作需要,做的是C语言中的JSON数据处理。其实,JSON有专门提回供一个 For_each_object(object,key, value)的函答数(名称可以不同的语言有所不同)。它可以读出一个JSON类(或者是Object)中所有的Key,以及相应的Value。
这其实是一个遍历JSON数据中所有Key的循环。你要做的是在这个循环中把需要的Key和Value重新写入一个新的Json类中。这个也是有函数提供的。
你最好去看看相应的API说明,或者是函数说明(在C语言中,就是去看看头文件里的说明)。
⑷ 如何过滤掉json字符串里面的反斜杠
你这个不算标准的JSON格式数据,可以先将\"替换成"即可。
再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个参数为true即可。
若仍输出为NULL,是由于存在BOM头信息,
$arr = json_decode(trim($json,chr(239).chr(187).chr(191)),true);
转换即可。
⑸ Struts2基于注释的Json属性过滤如何实现
1. 有个excludeProperties属性,这个复是通过正则匹配制上而过滤的。
要过滤多个话,就用逗号分隔。
2. @Result(name = Action.SUCCESS, type = "json", params = {
"excludeProperties","pageList\\.\\list[\\d+\\]\\.tbGrpInfo\\.(tbGrpEmps.*|tbGrpSets.*|tbGrpDepts.*){1}", //过滤的值(我用的是hibernate,这里是过滤集合中tbGrpInfo这个对象,但是tbGrpInfo个对象包含了tbGrpEmps,tbGrpSets,tbGrpDepts对象,因此都需要过滤,{1}这个表示只要有其中一个就过滤掉)
"includeProperties", "success,msg,pageList.*" //返回的值
}),
⑹ fastjson 过滤多余的字段!
SimplePropertyPreFilter filter = new SimplePropertyPreFilter(实体类.class, "字段名回","字段名");
答 JSON.toJSONString(list, filter);