FastJSON使用技巧
一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public
static
final
Object parse(String text);
// 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parSEObject(String text); // 把JSON文本parse成JSONObject public static final T parSEObject(String text,Class clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final List parseArray(String text,Class clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。 二、FastJson解析JSON步骤
A、服务器端将数据转换成json字符串
首先、服务器端项目要导入阿里巴巴的fastjson的jar包至builtPath路径下(这些可以到fastjson官网下载:http://code.alibabatech.com/wiki/display/FastJSON/Home-zh )
字段别名 NameFilter filter = new NameFilter() { @Override public String process(Object arg0,String arg1,Object arg2) { if ("remarkObject1".equals(arg1)){ return "warnPersonName"; } return arg1; } }; return Result.success(JSON.toJSONString(map,filter)); 1、字段名称映射 比如现在JavaBean中有一个字段名称为parentId,想将此字段转换为pId,则可以使用如下代码。 NameFilter filter = new NameFilter() { public String process(Object source,String name,Object value) { if (name.equals("parentId")) { return "pId"; } return name; } }; String jsonString = StringUtils.EMPTY; SerializeWriter out = new SerializeWriter(); try { JSONSerializer serializer = new JSONSerializer(out); serializer.getNameFilters().add(filter); serializer.write(columns);//这里的columns为待转换的对象 jsonString = out.toString(); } finally { out.close(); } 2、去除JSON中的key值的引号 FastJSON中默认为转换后的JSON中的key值是带引号的,有些特殊情况或者组件需要不带引号的,可以使用下面的代码将引号去掉。 在上面的代码中添加下面的这行代码,则可以将转换后的字段名称的引号去掉。 serializer.config(SerializerFeature.QuoteFieldNames,false); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |