(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
personsadd(new Person("13867", "女", true, "北京朝阳区"));//填充Java实体类集合
}
JSONArray array = new JSONArray();// Json格式的数组形式
JSONObject obj;//json格式的单个对象形式
for (int i = 0; i < personssize(); i++) {
obj = new JSONObject();
//依次填充每一个Java实体对象
try {
objput("phone", personsget(i)getPhone());//json通过put方式以key-value形式填充
objput("sex", personsget(i)getSex());
objput("married", personsget(i)getMarried());
objput("address", personsget(i)getAddress());
arrayput(obj);//将JSONObject添加入JSONArray
} catch (JSONException e) {
eprintStackTrace();
}
}
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区");
//创建GSON对象
Gson gson = new Gson();
//调用toJson方法即可转换为字符串的json格式
String json = gsontoJson(person);问了一些人 他们说 让我 先设置值 然后在取值, 通过requestsetAttribute("jsonArray",jsonArray)可是我写代码是在java类中写的啊 java类中没有这个(request)对象啊, 我到底该咋办
你的java要写成servlet啊,做成web项目,页面才可以访问啊,或者你直接写到jsp中,jsp编译以后也是servlet。这个是java基础,你好像还没理解。看看怎么使用servlet,应该就可以解决了。JSP接收的应该是Json数据吧,你可以用Ajax向后端提请求,后端把从DAO层查询出的数据用JSON包装即可,Json包装这个功能,据说Struts2本身就支持这个功能,主要是设计每次返回的Json结构。首先要确定的是 你是要做 tree 还是 做 treegrid ;
如果后台你不想改的话,可以发起这样的ajax请求,然后回调函数里用 resultrows这个json数据放到你的tree里就行了。java中把json怎么转换成数组的方法:
1、使用原生的解析:String json = "";JSONArray array= new JSONArray(json);//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:for (int j = 0; j < arraylength(); j++) {obj = arraygetJSONObject(j);Data data = new Data();datasetThumbnail(objgetString("thumbnail"));datasetTitle(objgetString("title"));datasetUrl(objgetString("url"));mDataListadd(data);}2、使用第三方包如Gson,但是这个你得保证你的JSON字符串个z//你得先说明 数据结构是什么样的,这里只好模拟下
// json = 数据库中的数据,通过ajax方法获取
var json = {a:{
b1:{c1:"c1",c2:"c2"},
b2:{c8:{d1:"d1",d2:"d2"},c7:{d3:"d3"}}
}};
function tree(data){
var ss = ""
if(typeof data =="object"){
for(var f1 in data){
ss =ss+ "<div id="+f1+">"+write(data[f1])+"</div>";
}
return ss
}else{
return data
}
}
var html = tree(json)
documentwrite(html)1、通过requestsetAtrribute("json" , jsonArray)把你的json数据传到jsp页面上。
2、在获取值的下方使用如下方式初始化ztree:
$fnzTreeinit($("#treeView"), setting, treeNodes) ;//第一个值是div对象,第二个值是你的ztree设置,第三个值是你放到jsp页面的json。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)