赞
踩
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。
Fastjson 源码地址:https://github.com/alibaba/fastjson
Fastjson 中文 Wiki:https://github.com/alibaba/fastjson/wiki/Quick-Start-CN
提供服务器端、安卓客户端两种解析工具,性能表现较好。
提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。
允许转换预先存在的无法修改的对象(只有class、无源代码)。
Java泛型的广泛支持。
允许对象的自定义表示、允许自定义序列化类。
支持任意复杂对象(具有深厚的继承层次和广泛使用的泛型类型)。
在 maven 中央仓库中直接下载:
http://repo1.maven.org/maven2/com/alibaba/fastjson/
或者配置 maven 依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>x.x.x</version>
</dependency>
JSONObject代表json对象
JSONArray代表json对象数组,
JSON代表JSONObject和JSONArray的转化。
JSONObject s = new JSONObject();
s.put("NAME","测试名称");
s.put("CODE","oper_code_xxxx");
System.out.println(s.getString("NAME"));
输出:
测试名称
JSONObject s = new JSONObject();
s.put("NAME","测试名称");
s.put("age",20);
System.out.println(s.getInteger("age"));
输出:
20
int size = jsonObject.getJSONArray("productList").size();
for (int i = 0; i < size; i++) {
log.info(String.valueOf(jsonObject.getJSONArray("productList").getJSONObject(i)));
}
与parseObject()方法类似,parseArray()将json字符串转化为json对象数组或转化成包含泛型的List
json字符串与javaBean之间的转换可以使用 TypeReference 这个类,也可以使用Class这个类。推荐使用第二种Class类反射来实现,比较简单。
Student stu1=JSON.parseObject(jsonstr,new TypeReference<Student>(){});
Student stu1=JSON.parseObject(jsonstr,Student.class);
JSONArray jsonArray = JSON.parseArray(searchCondition.get("data").toString());
//对jsonArray中的数据按autoId进行正排
Collections.sort(jsonArray, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
JSONObject js1 = (JSONObject)o1;
JSONObject js2 = (JSONObject)o2;
Integer i1 = Integer.valueOf(js1.get("autoId").toString());
Integer i2 = Integer.valueOf(js2.get("autoId").toString());
return i1-i2;
}});
return jsonArray;
转换时加上:Feature.OrderedField
JSONObject
String textObject = "{"row1":{"userNmae":"zhangsan"},"row2":{"userNmae":"lisi"},"row3":{"userNmae":"wangwu"}}";
int i = 1;
JSONObject json2 = JSONObject.parseObject(textObject, Feature.OrderedField);
Iterator<String> iterator2 = json2.keySet().iterator();
while (iterator2.hasNext()) {
String key = iterator2.next();
System.out.println(i + " : " + json2.get(key));
i++;
}
JSONArray
String textArray = "[{"people":{"row1":{"userNmae":"zhangsan"},"row2":{"userNmae":"lisi"},"row3":{"userNmae":"wangwu"}}}]";
//不直接转Array,调用parse()方法,当作JSONObject转,然后强制转换。
JSONArray array = (JSONArray) JSONObject.parse(textArray, Feature.OrderedField);
JSONObject obj;
List<ResourceEntity> data = obj.getJSONArray("data").toJavaList(ResourceEntity.class);
List<Object> res = getData();
for (Object o : res) {
String jsonObj = JSON.toJSONString(o);
ResourceEntity resource = JSONObject.parseObject(jsonObj, ResourceEntity.class);
}
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
String jsonString = JSONObject.toJSONString(map);
System.out.println(jsonString);
}
// 输出
{"key1":"value1","key2":"value2"}
JSONObject total = new JSONObject(new LinkedHashMap<>());
total.put("ivalueType", "总积分");
total.put("ivalue", result.getString("totalIvalue"));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。