json转对象java
1. 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对象数组, 以下标方式便可访问数组里的相应对象信息。
2. 非常复杂的一个json串,怎么转成java对象
1、可借助开源组件FastJson或者Jackson。
2、自己动手
a、使用反射获取对象所有的setter方法以及对于所需的参数类型用map对应
b、循环上诉集合,依次使用反射调用set方法,并使用正则匹配json串中的值,可以使用class.getDeclareFileds();获取变量名,注意若参数是class类型需要反射为实例后填充,class类型匹配json串是也需要注意,因为可能存在嵌套对象中变量名一致的情况。展示部分代码如下:
3、综合分析还是建议使用中间件来进行映射。可参考Jackson示例
3. json字符串怎么转换为java对象
您好,鉴于此问题,我将提供您如下的解决方案:
1、首先,加入如下 jar 文件到工程中:
3、控制台输出结果如下所示:
{"age":90,"houses":[],"id":1,"name":"liNing"}
User [age=90, houses=[], id=1, name=liiNing]
4. java中json对象是如何创建或者转换出来的
JSONObject在JAVA中其实就相当于Map, 可以通过key取到值;
而JAVA对象,一般是JAVA中的model或者domain 模型对象, 这种对象代表的是一个业务的模型,是有明确的意义的, 包括里面的属性类型都是明确定义;
转换成对象之后,操作其中的值就可以用getter,setter方法明确指定,
一般其他人使用的时候也能知道里面有什么,而如果只有一个JSONObject, 使用的时候除了先在控制台输入里面的内容是不知道里面有什么的,
并不适合在JAVA方法中的数据传递使用
5. 如何将json字符串 转成json对象 java
org.json.jsonobject
去下一个这个jar包吧。
是专用处理json字符串的。
你的这个需求如果对象单一完成可以半自动化完成。
jsonobject
json
=
new
jsonobject(json字符串)
;
if(json.has("你要解析的json是否存在")){
//.....创建你的对象。
//.....解析值并赋值给你的对象
}
如果要实现完成自动解析就得反射了。
以上回答你满意么?
6. 怎么将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);
}
7. java中json字符串怎么转json对象
给你个思路:
1、将jsonstr转为json对象 (这个可以用net.sf.json.JSONObject第三方包来实现)
2、根据refObj 这个key获取{'existType':'exist','deptType':'emp','treeNodeType':'dept'},把获取的这数据再转为json.
3、将转后的json根据existType就能取得值了 。
8. json数组转java对象怎么转
1、需要json的相关jar包
2、设置json格式字符串:
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";
3、建立相应的类:
public class StudentList {
List<Student> student;
public List<Student> getStudent() {
return student;
}
public void setStudent(List<Student> student) {
this.student = student;
}
}
public class Student {
private String name;
private int age;
//private StudentClass studentClass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
4、测试程序
import java.util.List;
import org.codehaus.jackson.map.ObjectMapper;
public class JsonToJavaBean {
public static void main(String[] args) {
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";
Student stu = null;
List<Student> list = null;
try {
ObjectMapper objectMapper=new ObjectMapper();
StudentList studentList=objectMapper.readValue(str, StudentList.class);
list=studentList.getStudent();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(Student s:list){
System.out.println(s.getName());
}
}