zoukankan      html  css  js  c++  java
  • 简单json 转换为 map、对象

    1.如果转换的是Map、或者是简单的对象

    package com.gc.action;

    import java.util.Map;

    import net.sf.json.JSONObject;

    /**
    * 1.json string 转换为 map
    * 2.json string 转换为 对象
    * @author zhangtengda
    *
    */
    public class JsonUtils {
    public static void main(String[] args) {
    String jsonStr = "{"status":"0","data":{"name":"tom","age":18}}";

    // ================================
    // 1.如果是拿出来最外层的 map
    Map<Object, Object> result = jsonToMap(jsonStr);
    System.out.println(result.get("status"));
    System.out.println(result.get("data"));

    // 2.如果进步一拿到内层的 map
    Map<Object, Object> data = jsonToMap(result.get("data"));
    System.out.println(data.get("name"));
    System.out.println(data.get("age"));
    // ================================

    Long beginTime = System.currentTimeMillis();
    // 3.转换为对象
    String personStr = "{"id":12,"name":"mary"}";
    Person person = jsonToBean(personStr, Person.class);
    System.out.println(person);

    System.out.println("耗时:" +( System.currentTimeMillis() - beginTime));

    }

    /**
    * json string 转换为 map 对象
    * @param jsonObj
    * @return
    */
    public static Map<Object, Object> jsonToMap(Object jsonObj) {
    JSONObject jsonObject = JSONObject.fromObject(jsonObj);
    Map<Object, Object> map = (Map)jsonObject;
    return map;
    }

    /**json string 转换为 对象
    * @param jsonObj
    * @param type
    * @return
    */
    public static <T> T jsonToBean(Object jsonObj, Class<T> type) {
    JSONObject jsonObject = JSONObject.fromObject(jsonObj);
    T obj =(T)JSONObject.toBean(jsonObject, type);
    return obj;
    }

    }

    使用到的 Person.java

    package com.gc.action;

    public class Person{
    private int id;
    private String name;
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public Person(int id, String name) {
    super();
    this.id = id;
    this.name = name;
    }

    public Person() {
    }

    @Override
    public String toString() {
    return "id : " + id + " name : " + name;
    }
    }

    maven 依赖

    <dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
    </dependency>

    注意这个只是进行简单的 json 和 string 之间的互转,如果是进行复杂对象的 json 转换这个就无法行得通了,需要使用 jackson 工具包来实现了,它可以实现复杂对象的转换,包括对象里面有 list 都可以的
    ---------------------

    原文:https://blog.csdn.net/tengdazhang770960436/article/details/50393343

  • 相关阅读:
    【phpmailer】类Could not instantiate mail function / IXWebHosting空间
    Delphi通过机器码获得注册码的完整方案
    月末使用期间损益结转
    如何停用已启用模块
    DevExpress安装
    用Delphi实现WinSocket高级应用
    如何用delphi读取网卡物理号
    Delphi制作带图标的弹出式选单
    Register Delphi ,Delphi 不能运行
    远程通:系统管理不可以使用
  • 原文地址:https://www.cnblogs.com/sanhao/p/10276183.html
Copyright © 2011-2022 走看看