json转换java对象
A. 怎么将json对象转换成一个java对象
public static void jsonStrToJava(){
//定义两种不同格式的字符串
String objectStr="{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}";
String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城区\"}]";
//1、使用JSONObject
JSONObject jsonObject=JSONObject.fromObject(objectStr);
Student stu=(Student)JSONObject.toBean(jsonObject, Student.class);
//2、使用JSONArray
JSONArray jsonArray=JSONArray.fromObject(arrayStr);
//获得jsonArray的第一个元素
Object o=jsonArray.get(0);
JSONObject jsonObject2=JSONObject.fromObject(o);
Student stu2=(Student)JSONObject.toBean(jsonObject2, Student.class);
System.out.println("stu:"+stu);
System.out.println("stu2:"+stu2);
}
B. json格式的字符串转换为java对象
反斜杠\起到转义的作用,防止解析错误,比如双引号。
json格式的字符串转换为java对象推荐Gson.
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
参考:https://github.com/google/gson
C. JSON转为java对象
开始看网上关于json的例子程序段,实验了一把发现结果和网上例子程序的结果不一致,后来发现使用json需要导入的jar包不全,只导入json-lib-2.2.2-jdk15.jar ,还需以下几个包:commons-beanutils-1.7.0.jar commons-collections-3.2.jar commons-lang.jar commons-logging-1.1.jar ezmorph-1.0.4.jar 这时在测试得到了想要的结果 Question q2 = new Question(); q2.setId(2); q2.setDescription("descrsssss"); q2.setPointInfo("pointkkkk"); q2.setType(3); Question q1 = new Question(); q1.setId(1); q1.setDescription("descrsssss"); q1.setPointInfo("pointkkkk"); q1.setType(3); JSONObject jsonObject = new JSONObject().fromObject(q2); System.out.println(jsonObject); List list = new ArrayList(); list.add(q1); list.add(q2); JSONArray jsonArr= JSONArray.fromObject(list); System.out.println(jsonArr); 输出:{"description":"descrsssss","id":2,"pointInfo":"pointkkkk","type":3} [{"description":"descrsssss","id":1,"pointInfo":"pointkkkk","type":3},{"description":"descrsssss","id":2,"pointInfo":"pointkkkk","type":3}]页面 $.post("showQuestions?type="+type,null,callbackShowQuestions,"json"); 这时在回调函数的参数data获得的就是json转换后的js对象数组, 以下标方式便可访问数组里的相应对象信息。
D. json数组转java对象怎么转
有两种方法实现:
(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合
}
JSONArray array = new JSONArray();// Json格式的数组形式
JSONObject obj;//json格式的单个对象形式
for (int i = 0; i < persons.size(); i++) {
obj = new JSONObject();
//依次填充每一个Java实体对象
try {
obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充
obj.put("sex", persons.get(i).getSex());
obj.put("married", persons.get(i).getMarried());
obj.put("address", persons.get(i).getAddress());
array.put(obj);//将JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区");
//创建GSON对象
Gson gson = new Gson();
//调用toJson方法即可转换为字符串的json格式
String json = gson.toJson(person);
E. JSON数组怎么转换为JAVA可处理对象
packageno.integrasco.ingentia.news.qaedition;
importjava.util.List;
importnet.sf.json.JSONArray;
importnet.sf.json.JsonConfig;
publicclassJsonTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//转换方法2
List<?>list2=JSONArray.toList(array,newPerson(),new
JsonConfig());//参数1为要转换的JSONArray数据,参数2为要转换的目标数据,即List盛装的数据
Personperson=(Person)list2.get(0);
System.out.println(person.getAge());
}
}
F. 怎样把JSON对象快速的转成java对象
用阿里开源的fastjson