1、需要引入jackson的相关jar:
2、代码使用方法如下:
import java.io.IOException;
import java.util.Iterator;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.JsonNode;
import com.together.crm.domain.JsontoBean;
public class JsonToBeanTest {
public static void main(String[] args)
throws JsonParseException, JsonMappingException, IOException {
Student student = null;
// 简单的json串字符 转换成 javaBean对象
String jsonString = "{\"id\":01,\"name\":\"zhangsan\",\"age\":18}";
JSONObject jsonObject = JSONObject.fromObject( jsonString );
student = (JsontoBean) JSONObject.toBean( jsonObject, Student.class );
System.out.println(bean);
// Json字符串数组
// 1.转换成javabean
String jsonString = "[{\"id\":\"01\",\"name\":\"zhagnsan\",\"age\":18},{\"id\":\"02\",\"name\":\"zhagnsan\",\"age\":20}]";
JSONArray jsonArray = JSONArray.fromObject(jsonString);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonArrayObject = jsonArray.getJSONObject(i);
bean = (JsontoBean)JSONObject.toBean(jsonArrayObject,JsontoBean.class);
System.out.println(bean.toString());
}
// 2.取key-value对应值
String jsonString = "[{\"meterid\":\"01179G01\",\"padjboxid\":\"G1168\"},{\"meterid\":\"01179G02\",\"padjboxid\":\"G1168\"},{\"meterid\":\"1400302142\",\"padjboxid\":\"G1168\"}]";
ObjectMapper mapper = new ObjectMapper();
JsonNode mainJsonNode = mapper.readValue(jsonString, JsonNode.class);
Iterator<JsonNode> mainNodes = mainJsonNode.getElements();
while (mainNodes.hasNext()) {
JsonNode node = mainNodes.next();
String meterid = node.get("meterid").getTextValue();
String padjboxid = node.get("padjboxid").getTextValue();
System.out.println("meterid="+meterid+",padjboxid="+padjboxid);
}
}
}
对jsontoBean类的封装
public class Student {
private String id;
private String name;
private String age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}