json 和java对象 互相转换(java)
java 解析json
- 使用 alibaba 的 fastJson
添加依赖或者jar
fastJson 简单使用
JSON > Java对象
java对象 > json

public class MyJson {
public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}";
public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}";
public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]";
public static void main(String[] args) {
User user = new User();
user.setName("xiaohong");
user.setPassword("654321");
List<User> list = new ArrayList<User>();
list.add(user);
list.add(new User("xixi","789"));
Map map = new HashMap();
map.put("001",user);
map.put("002",list);
// 1. json字符串 转换为 java 对象
// toJsonString - java对象转换为json字符串
System.out.println(JSONObject.toJSONString(user));
System.out.println(JSONObject.toJSONString(list));
System.out.println(JSONObject.toJSONString(map));
// toJavaObject - json字符串转换为java对象
System.out.println(JSONObject.parseObject(jsonuser,User.class));
List list1 = JSONObject.parseObject(jsonlist, List.class);
for(int i=0;i<list1.size();i++) {
System.out.println(JSONObject.parseObject(JSONObject.toJSONString(list1.get(i)),User.class));
}
Map map1 = JSONObject.parseObject(jsonmap, Map.class);
Iterator iterator = map1.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry= (Map.Entry) iterator.next();
System.out.println("key :"+entry.getKey()+" value: " + entry.getValue());
}
// Json -- 实体类转换为json字符串
System.out.println(JSON.toJSONString(user));
System.out.println(JSON.toJSONString(list));
System.out.println(JSON.toJSONString(map));
// json -- json 转 java对象
System.out.println(JSON.parseObject(jsonuser,User.class));
List list2 = JSON.parseObject(jsonlist, List.class);
for(int i=0;i<list2.size();i++) {
System.out.println(JSON.parseObject(JSON.toJSONString(list1.get(i)),User.class));
}
Map map2 = JSON.parseObject(jsonmap, Map.class);
Iterator iterator2 = map1.entrySet().iterator();
while (iterator2.hasNext()) {
Map.Entry entry= (Map.Entry) iterator2.next();
System.out.println("key :"+entry.getKey()+" value: " + entry.getValue());
}
}
}
jackson :

使用:
入门连接:https://blog.csdn.net/mashangyou/article/details/24271001
测试json
public class Myjackson {
public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}";
public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}";
public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]";
public static void main(String[] args) throws IOException {
// 创建 objectMapper
ObjectMapper mapper = new ObjectMapper();
// 读取树模型 mapper.readTree 相当于 把 json 读取为一个json树
JsonNode jsonNode = mapper.readTree(jsonmap);
// 获取 001
JsonNode path001 = jsonNode.path("001");
System.out.println(path001);
System.out.println(path001.path("name"));
System.out.println(path001.findPath("password"));
// json > java对象
User user = mapper.readValue(jsonuser, User.class);
System.out.println("user ==" + user);
System.out.println(mapper.readValue(jsonlist, List.class));
System.out.println(mapper.readValue(jsonmap,Map.class));
// java对象 》 json
String s = mapper.writeValueAsString(user);
System.out.println(s);
}
}
还可以将 json 输入到 文件中
Gson:

package com.xiaodu.json;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.xiaodu.model.User;
import java.util.List;
import java.util.Map;
/**
* @author du_tian_jie
* @version v1.0
* @date
* @desc:
*/
public class MyGson {
public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}";
public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}";
public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]";
public static void main(String[] args) {
// json >java
Gson gson = new Gson();
User user = gson.fromJson(jsonuser, User.class);
System.out.println(user);
System.out.println(gson.fromJson(jsonlist, List.class));
System.out.println(gson.fromJson(jsonmap,Map.class));
// java > json
String json = gson.toJson(new User("小红", "1212"));
System.out.println(json);
// jsonObject 对象使用(使用jsonObject 对象)
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name","小王");
jsonObject.addProperty("password","7890000");
JsonArray jsonArray = new JsonArray();
jsonArray.add(jsonObject);
jsonArray.add(jsonObject); // 添加两个 一模一样的 -- 懒
System.out.println(jsonArray.toString());
}
}
浙公网安备 33010602011771号