json 和java对象 互相转换(java)

1. 使用 alibaba 的 fastJson

添加依赖或者jar

fastJson 简单使用

JSON  > Java对象

java对象 > json

w3c的 API 连接:https://www.w3cschool.cn/fastjson/fastjson-api.html


  
  
  1. public class MyJson {
  2. public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}";
  3. public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}";
  4. public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]";
  5. public static void main(String[] args) {
  6. User user = new User();
  7. user.setName("xiaohong");
  8. user.setPassword("654321");
  9. List <User> list = new ArrayList <User>();
  10. list.add(user);
  11. list.add(new User("xixi","789"));
  12. Map map = new HashMap();
  13. map.put("001",user);
  14. map.put("002",list);
  15. // 1. json字符串 转换为 java 对象
  16. // toJsonString - java对象转换为json字符串
  17. System.out.println(JSONObject.toJSONString(user));
  18. System.out.println(JSONObject.toJSONString(list));
  19. System.out.println(JSONObject.toJSONString(map));
  20. // toJavaObject - json字符串转换为java对象
  21. System.out.println(JSONObject.parseObject(jsonuser,User.class));
  22. List list1 = JSONObject.parseObject(jsonlist, List.class);
  23. for(int i=0;i <list1.size();i++) {
  24. System.out.println(JSONObject.parseObject(JSONObject.toJSONString(list1.get(i)),User.class));
  25. }
  26. Map map1 = JSONObject.parseObject(jsonmap, Map.class);
  27. Iterator iterator = map1.entrySet().iterator();
  28. while (iterator.hasNext()) {
  29. Map.Entry entry= (Map.Entry) iterator.next();
  30. System.out.println("key :"+entry.getKey()+" value: " + entry.getValue());
  31. }
  32. // Json -- 实体类转换为json字符串
  33. System.out.println(JSON.toJSONString(user));
  34. System.out.println(JSON.toJSONString(list));
  35. System.out.println(JSON.toJSONString(map));
  36. // json -- jsonjava对象
  37. System.out.println(JSON.parseObject(jsonuser,User.class));
  38. List list2 = JSON.parseObject(jsonlist, List.class);
  39. for(int i=0;i<list2.size();i++) {
  40. System.out.println(JSON.parseObject(JSON.toJSONString(list1.get(i)),User.class));
  41. }
  42. Map map2 = JSON.parseObject(jsonmap, Map.class);
  43. Iterator iterator2 = map1.entrySet().iterator();
  44. while (iterator2.hasNext()) {
  45. Map.Entry entry= (Map.Entry) iterator2.next();
  46. System.out.println("key :"+entry.getKey()+" value: " + entry.getValue());
  47. }
  48. }
  49. }

 

jackson :

 

使用:

入门连接:https://blog.csdn.net/mashangyou/article/details/24271001

测试json 


  
  
  1. public class Myjackson {
  2. public static String jsonmap = "{\"001\":{\"name\":\"xiaohong\",\"password\":\"654321\"},\"002\":[{\"$ref\":\"$.001\"},{\"name\":\"xixi\",\"password\":\"789\"}]}";
  3. public static String jsonuser = "{\"name\":\"xiaohong\",\"password\":\"654321\"}";
  4. public static String jsonlist = "[{\"name\":\"xiaohong\",\"password\":\"654321\"},{\"name\":\"xixi\",\"password\":\"789\"}]";
  5. public static void main(String[] args) throws IOException {
  6. // 创建 objectMapper
  7. ObjectMapper mapper = new ObjectMapper();
  8. // 读取树模型 mapper.readTree 相当于 把 json 读取为一个json树
  9. JsonNode jsonNode = mapper.readTree(jsonmap);
  10. // 获取 001
  11. JsonNode path001 = jsonNode.path("001");
  12. System.out.println(path001);
  13. System.out.println(path001.path("name"));
  14. System.out.println(path001.findPath("password"));
  15. // json > java对象
  16. User user = mapper.readValue(jsonuser, User.class);
  17. System.out.println("user ==" + user);
  18. System.out.println(mapper.readValue(jsonlist, List.class));
  19. System.out.println(mapper.readValue(jsonmap,Map.class));
  20. // java对象 》 json
  21. String s = mapper.writeValueAsString(user);
  22. System.out.println(s);
  23. }
  24. }

还可以将 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”:[{”KaTeX parse error: Can't use function '\"' in math mode at position 4: 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 &gt;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 &gt; 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());
    

    }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值