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
简单json 转换为 map、对象
原文地址:https://www.cnblogs.com/sanhao/p/10276183.html