• 简单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

  • 相关阅读:
    AFN的配置使用
    如何给另外一台电脑(同组其他成员)开发ios权限
    IAP中的坑
    如何在上架app后修改app在商店中的名字
    wordpress禁止调用官方Gravatar头像调用ssl头像链接提升加载速度
    ubuntu 杀死进程命令
    tp框架 php5.5以上版本出现”No input file specified“错误问题解决
    支付宝调用错误:Call to undefined function openssl_sign()
    浏览器下出现net::ERR_BLOCKED_BY_CLIENT的解决办法
    python 整形方法
  • 原文地址:https://www.cnblogs.com/sanhao/p/10276183.html
Copyright © 2020-2023  润新知