可否将Javascript对象转换成对应的java对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可否将Javascript对象转换成对应的java对象相关的知识,希望对你有一定的参考价值。
public void outString(String str)try
getResponse().setContentType("text/json;charset=utf-8");
PrintWriter out = getResponse().getWriter();
out.write(str);
catch (IOException e)
//字符串转换为json
public void outJsonString(String str)
outString(str);
// 对象转换JSON格式
public void outJson(Object obj)
try
String json=JSONObject.fromObject(obj).toString();
outJsonString(json);
catch (Exception e)
e.printStackTrace();
// 数组转换JSON格式
public void outJsonArray(Object array)
try
outJsonString(JSONArray.fromObject(array).toString());
catch (Exception e)
e.printStackTrace();
后台:List<QuestionsOptions> questionsOptionsList=new ArrayList<QuestionsOptions>() ;
outJsonArray(questionsOptionsList);
jquery 代码:
$.ajax(
url:'questionsOptionsList.action',
type:'post',
data:loadValue, //传给后台的参数
dataType:'json', //返回值类型 一般设置为json
success:function (data, status) //服务器成功响应处理函数
showHTML(data);
,
error:function (data, status, e)//服务器响应失败 参考技术A javascript的对象类型是根据对象的值来定义的
Javaweb阶段知识回顾一
java基础增强
一、jdk1.5的新特性
自动封箱拆箱
封箱:Java自动将原始类型值转换成对应的对象,如将int的变量转换成Integer对象
拆箱:自动将对应的对象转换成原始类型值,将Integer对象转换成int类型值
自动装箱时编译器调用valueOf将原始类型值转换成对象,同时自动拆箱时,编译器通过调用类似intValue(),doubleValue()这类的方法将对象转换成原始类型值。
静态导入
static import
如果一个类中的方法全部是使用static声明的静态方法或变量,则可以使用静态导入,在使用导入类的静态资源时,不需要类名.
可变参数
类型... 空格 变量名
可变参数的底层是数组对象,很多事情,编译器给你干了
可变参数必须位于方法参数的最后一个哦
凡是参数是可变参数的,可以直接传数组对象
枚举
enum
public enum EasySingleton{}
java枚举底层是继承了java.lang.Enum,可以用在switch中
增强for循环
增强for循环的底部实现其实就是迭代器
语法:for(类型 变量名 : 对象)
反射
获得class类的三种方式
1、Object类中的getclass()
2、类.class
3、Class类的forName()
获得class类之后可以
1、创建对象
2、获取类属性
3、获取类方法
反射的详细api:http://blog.csdn.net/jjfly999/article/details/51226986?locationNum=2&fps=1
二、注解
基础:
1.可以通过 @interface关键字来定义注解,定义注解和定义接口很相似。
2.注解中可以包含属性,可以在注解声明时,在该注解内部声明属性;类似于接口中定义方法;
3.注解的属性必须public,public可以省略,默认就是public.
4.在使用注解时需要指定属性的值(未指定默认值的属性)。也可以在定义属性时使用default指定默认值。指定默认值之后,在使用该注解时,该属性可以指定值,也可以不指定值。
5.注解中属性的类型是有要求,只能是八种基本数据类型、String、枚举类型、Class类型等,或以上类型一维数组。
6.注解的属性中有一个特殊属性,名字叫value属性,如果注解只用一个属性需要被赋值,并且该属性的名字刚好叫value,则属性赋值“value=”可以省略。
7.如果注解的属性是一个数组类型,并且在赋的值中只有一个值,则“{}”可以省略。
进阶:
使用源注解修饰自定义的注解
所谓的源注解指的就是sun定义用来修饰自定义注解的注解。
@Retention:用于指定该Annotation可以保留的域。:SOURCE(源代码级别,给编译器看的)编译器直接丢弃这种策略的注解。
CLASS(class字节码级别)编译器编译后,会将该类注解保留在class文件中,当运行程序时,JVM将不会保留该类注解。
RUNTIME:编译器编译后,会将该类注解保留在class文件中,JVM保留,程序在运行时页存在,所以可以通过反射来获取注解的信息(使用最多)
@Target:指定注解用于修饰哪个成员
ANNOTATION_TYPE 注释类型声明
CONSTRUCTOR 构造方法声明
FIELD 字段声明(包括枚举常量)
LOCAL_VARIABLE 局部变量声明
METHOD 方法声明
PACKAGE 包声明
PARAMETER 参数声明
以上是关于可否将Javascript对象转换成对应的java对象的主要内容,如果未能解决你的问题,请参考以下文章
java调用javascript时,如何将NativeArray或NativeObject转换成java实体或者HashMap,List对象
JavaScript:如何将JSON对象转换成JSON字符串呢