如何将java List 转换成JavaScript 可以操作的对象。具体看问题补充。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将java List 转换成JavaScript 可以操作的对象。具体看问题补充。相关的知识,希望对你有一定的参考价值。
我项目中使用的Struts 2框架,在java后台有List 类型的questionsOptionsList,意思是问题选项列表。questionsOptionsList包含的元素是对象QuestionsOptions(QuestionsOptions本身包含各种属性)。我现在想做的是在jsp页面循环questionsOptionsList,取出其中各个QuestionsOptions的Content属性,然后结合JQuery 赋值给页面标签。思路大致就是这样。
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)//服务器响应失败处理函数
alert(e);
);
function showHTML(data)
for(var i=0;i<data.length;i++)
alert(data[i].Content);
参考技术A 给你提供个思路
list里面放的是bean,bean的属性有id,name
将list转成json
Object obj = JSONArray.fromObject(list);
obj= "(id:1,name:'a',id:2,name:'b',...)";
将obj传给页面,共js使用了 参考技术B 通过JQuery 的 ajax 提交请求后台,后台的questionsOptionsList 通过JSONArray.fromObject(List)转换成字符串,返还给前台,前台就可以直接循环这个列表对象了 参考技术C 后台:JSONArray jsonArray=JSONArray.fromObject(List);
js:$.each(status,function()alert(comment);
status:为ajax返回的数据。 参考技术D 封装成JSONArray对象,调用该对象的toSring()方法,或转换成类似json的字符串[pname0:value0,pname1:pvalue1,...........,.......]
前台获取字符串
java中,如何把一个字符串转换成数组?
如题:
String st="abcdefg“,如何转换成数组 string [] ary=a,b,c,d,e,f.g.thanks in advance.
1.字符串转字符
for(int i = 0; i < str.length ; i++ )
str.charAt(i);
2+3:不想循环的话 可以用一个List装字符,每次装之前调用if(List.contains(..))
import java.util.HashMap;
import java.util.Map;
public class HelloWorldCountTest
public static void main(String[] args)
String hello = "helloworld!";
Map<Character, Integer> map = new HashMap<Character, Integer>();
char[] ch = hello.toCharArray();
for (char c : ch)
Integer i = map.get(c);
if (i == null)
map.put(c, 1);
else
map.put(c, i.intValue() + 1);
System.out.println(map);
或者
static Map sortMap(Map map)List list = new LinkedList(map.entrySet());
Collections.sort(list, new Comparator()
public int compare(Object o1, Object o2)
int result = ((Comparable) ((Map.Entry) (o1)).getValue())
.compareTo(((Map.Entry) (o2)).getValue());
return result == 0?
((Comparable) ((Map.Entry) (o1)).getKey())
.compareTo(((Map.Entry) (o2)).getKey())
:result;
);
Map result = new LinkedHashMap();
for (Iterator it = list.iterator(); it.hasNext();)
Map.Entry entry = (Map.Entry)it.next();
result.put(entry.getKey(), entry.getValue());
return result;
参考技术A public static void main(String[] args)
String str = "hello world!";//要转换的字符串
int len = str.length();//字符串长度
String strArray[] = new String[len];
//开始转换
for(int i = 0; i < len; i++)
strArray[i] = str.charAt(i) + "";
//查看结果
for(String s:strArray)
System.out.println(s);
本回答被提问者采纳 参考技术B 直接用st.toCharArray();返回一个char[]数组,非要String的话可以强转 参考技术C 用字符串分割Sting[] ary=st.split(""); 参考技术D st.toCharArray();
以上是关于如何将java List 转换成JavaScript 可以操作的对象。具体看问题补充。的主要内容,如果未能解决你的问题,请参考以下文章
如何将java List 转换成JavaScript 可以操作的对象。具体看问题补充。
java调用javascript时,如何将NativeArray或NativeObject转换成java实体或者HashMap,List对象