首页 > 编程语言 >json 和java对象 互相转换(java)

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

时间:2022-12-28 20:33:56浏览次数:63  
标签:转换 name System json println java password out

ava 解析json

  1. 使用 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());


    }
}

标签:转换,name,System,json,println,java,password,out
From: https://www.cnblogs.com/codeLearn/p/17011222.html

相关文章

  • 第一百一十八篇: JavaScript 原型链式继承
    好家伙,好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记 1.原型链原型链是JS实现"继承"的方案之一ECMA-262把原型链定义为ECMAScript的主要......
  • 分享20个Javascript中的数组方法,收藏
    什么是数组?与其他编程语言中的数组一样,Array对象允许在一个变量名称下存储多个项的集合,并且具有用于执行常见数组操作的成员。 声明数组我们可以用两种不同的方式......
  • Unity3D_使用JsonUtility读取Json
    使用Unity内置的方法对json进行写入与读取,不依赖任何插件和dll使用到的API读取:JsonUtility.FromJson<T>(stringjson)JsonUtility.FromJsonOverwr......
  • json和Java对象相互转换的四种方法
    第一种方法:原生解析首先要分析json的格式,这里首先是一个json对象(即JsonObject),里面还嵌套有一个json数组(即JsonArray),jsonarray里面又是一个json对象分析清楚那就可以进行......
  • LeetCode_Heap_剑指 Offer 40. 最小的k个数 【堆,泛型实现,自定义比较器】【C++/java】
    目录​​一,题目描述​​​​英文描述​​​​中文描述​​​​示例与说明​​​​二,解题思路​​​​1,手动实现堆——C++泛型实现​​​​2,手动实现堆——java泛型实现​​......
  • Web前端期末大作业--马尔代夫旅游网页设计(HTML+CSS+JavaScript+)实现
    目录​​前言介绍:​​​​网站首页:​​​​关于马尔代夫:​​​​酒店信息介绍:​​​​最新优惠政策:​​​​旅游须知模块:​​​​关于我们模块:​​​​主要源码结构:​​​......
  • java localDateTime
    #JAVA-LocalDateTime时间格式化,转换时间戳和源码分析##LocalDateTime`LocalDateTime`作为java8新加的时间类型,也是后面开发中常用的时间类型。作为时间类型,最关注的点......
  • Java学习之if---elif语句
    publicclasselif1{publicstaticvoidmain(String[]args){inttestScore=50;chargrade;if(testScore>=90){grade='A';}elseif(testScore>=80){grade=......
  • Java学习之do---while语句
    do—while1/*do-while结构如下do{循环体}while(条件表达式)特点:无条件的执行一次循环体,再来判断条件表达式的值,至少循环一次*/importjava.util.*;publicclassdh1......
  • Java学习之do-while-if语句实操
    //filenamedwif.java//题目要求:求100以内的素数,并输出/*由题目可知最小素数为2,其余偶数均为非素数,对于一个奇数k,使用3√k的每个整数j去除k,如果找到一个整数j能除尽k,则k......