关于Extjs和struts合用的json发送问题

问题描述

我是在action里面添加属性来自动传输json的private Integer len;private String root;public String findAllStu() throws ParseException, IOException {List<Student> stus = studentService.getAllStu();len = stus.size();root = JsonUtil.listToJson(stus, "student_list");return "list";}struts.xml中:<action name="studentAction^*" class="cn.edu.jmu.judgeOnline.action.StudentAction"method="{1}"><result name="list" type="json"></result></action>前台接收数据:{"len":1,"root":"[{'studentId':'180','studentName':'张三','classInfo.classId':'140','studentNo':'JM123456','sex':'0','birthday':'2014-05-01','address':'','tel':'','email':'','mobilephone':'','userInfo.userId':'1'}]"}js中的接收store:var store = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url:"studentAction^findAllStu"}), reader: new Ext.data.JsonReader({ totalProperty: 'len', root: 'root' }, [ {name: 'studentName'} ]) });觉得是数据的格式不对,就是store中的root应该是一个数组类型的,而我传过去的是一个字符串,这个怎么解决?

解决方案

private String root;这里你已经把root定义为String了,接收到的当然是String。看你的要求root应该是一个json类型的数组,所以应该让JsonUtil.listToJson()这个方法返回一个数组
解决方案二:
应该不是json格式的问题即使你json数据多也无所谓的,root:[{}]有一个studentName 这个属性就可以了你在看看你其他的程序问题
解决方案三:
用eval将字符串转换成JSON对象

时间: 2024-11-01 20:49:26

关于Extjs和struts合用的json发送问题的相关文章

struts-请问:基于Struts cation传json时不能序列化怎么回事?谢谢!

问题描述 请问:基于Struts cation传json时不能序列化怎么回事?谢谢! 基于Struts cation传json时不能序列化怎么回事 解决方案 这个问题太泛了,要么贴出具体的代码片段,要么描述清楚调用的过程,才能比较好定位.

struts extjs 3.3.1 读取JSON文件

json文件和脚本代码: jsonSrc/jsonTxt1.json, { "personInfoList": [ { "id": 0, "name": "A", "age": 12 }, { "id": 1, "name": "B", "age": 32 }, { "id": 2, "name&q

关于struts返回对象json格式数据的方法_java

想在struts中返回一个对象的json数据,通过定义 复制代码 代码如下: <action name="getUserByName" class="com.action.UserManagerAction" method="getUserByName"><result name="success" type="json">userInfo</result></ac

ExtJs实践:支持“复杂”Json的JsonReader

从服务端返回如下的JSON: {Id:2,Name:'Child1',Parent:{Id:1,Name:'Parent'}} 定义了如下的JsonReader来准备显示角色列表,父角色的名称影射成ParentName: var myReader = new Ext.data.JsonReader({ idProperty: 'id' root: 'rows', totalProperty: 'results', fields: [ {name: 'Id'}, {name: 'Name'}, {

JSP中获取ExtJS.Ajax前台传递的JSON数据实现过程_JSP编程

复制代码 代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.BufferedReader" %> <%@ page import="net.sf.json.*" %> <% Buff

将Datatable转化成json发送前台实现思路_javascript技巧

1.将dt序列化成json,放到前台的隐藏控件[hidBoundary]中: 复制代码 代码如下: string json = JsonConvert.SerializeObject(dtTemp); this.hidBoundary.Value = json; 需要引用Newtonsoft.Json.dll 2.从前台隐藏空间中取得dt中的数据 复制代码 代码如下: var boundaryDiv = $('#hidBoundary'); if (boundaryDiv != undefine

第一节:ExtJS调用WCF系列-----实现JSON传递

首先我们打开我们的VS 新建一个Asp.Net WebApplication Project,(不要给我说新建网站,我讨厌那个东东) 命名为ExtJSAndWCFChapter1 如图: 接下来我们在该项目中新建一个实体类文件和一个AJAX-Enabled WCF SERVICE,分别命名为Employee.cs 和EmployeeService.svc

struts 2-问题:利用struts自带的json机制,期望从后台获取json数据失败,求帮助

问题描述 问题:利用struts自带的json机制,期望从后台获取json数据失败,求帮助 问题:利用struts自带的json机制,期望从后台获取json数据失败,求帮助 ############################################################## struts 2.3.20 struts.xml <package name="json" extends="json-default" namespace=&qu

ExtJs在chrome浏览器中解决struts标签问题

问题描述 如何利用ExtJs获得struts中的html标签对象 解决方案 解决方案二:標籤在server端就處理完了,所以你觀察最後client產生的結果是什麼,然後想辦法修改結果讓ExtJS能使用.