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

  • 相关阅读:
    【工作总结】工作三年半的不归路,希望新人借鉴
    【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤
    【OpenWRT】【RT5350】【二】烧写OpenWrt到RT5350开发板
    【OpenWRT】【RT5350】【一】OpenWrt开发环境搭建
    2013总结
    [原创]cocos2dx加载网络图片&异步加载图片
    json 对c++类的序列化(自动生成代码)
    [奇思幻想] 开发过程中的一些设想记录中(持续更新....)
    GNU Makefile编写
    c语言到汇编的学习
  • 原文地址:https://www.cnblogs.com/sanhao/p/10276183.html
Copyright © 2020-2023  润新知