jsonをmap、オブジェクトに変換
6262 ワード
1.変換がMap、または単純なオブジェクトの場合
使用したPersonjava
maven依存
注意これは単純なjsonとstringの間の相互回転を行うだけで、複雑なオブジェクトのjson変換を行うとこれは通じません.jacksonツールパッケージを使用して実現する必要があります.複雑なオブジェクトの変換を実現することができます.オブジェクトの中にリストがあればいいです.
複雑なオブジェクトのjson変換リファレンス:
複雑なオブジェクトjson変換ツールクラスのインスタンス
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;
}
}
使用したPersonjava
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ツールパッケージを使用して実現する必要があります.複雑なオブジェクトの変換を実現することができます.オブジェクトの中にリストがあればいいです.
複雑なオブジェクトのjson変換リファレンス:
複雑なオブジェクトjson変換ツールクラスのインスタンス