我从数据库读取的数据,然后封装成json,然后显示到传到js文件,显示到页面上,如果数据全部都是String类型的话就没有问题,能够全部显示,如果有int或者data类型的就不行,求解决方法

解决方案 »

  1.   

    你的json序列化是自己写的吗?贴出来看看!后面那个是date类型吧
      

  2.   

    不是我自己写的
    是这个吗
        <package name="cenJson" namespace="/cenum" extends="json-default">
         <!-- 查询单位 -->
         <action name="queryCenum" class="cenumAction" method="search">
         <result type="json"></result>
         </action>
      

  3.   

    在拼JSON之前把int和date类型的.toString()一下再拼接
      

  4.   

    在JSON中只能传递基本类型的数据吧,像Date、Object都不行!
      

  5.   

    一切  数据 都可以显示return  JSON.fromObject().toString
    前台 直接 var json =  eavl("("+result+")");
    json.get("vo.attribute");
      

  6.   

    我的意思是,为什么全部都是String类型的就可以显示出来,其他类型的就不行。有谁可以解释一下?
      

  7.   

    你还用了 json 数据传递?如果读取数据库没问题的话,要么是那些属性为空,要么 json 输出插件版本问题,如果不是默认配置,请使用默认 json配置。任意Object及其子类都可以 json 序列化。 还补充一点,你确定你的页面接受的 json数据段是完整的?
      

  8.   

    我估计是你的js代码问题吧,json数据从数据库拿出来,alert()里面有数据没?就是int date类型的
      

  9.   

    我直接调用action页面的话,能够弹出一个文本框,里面的数据是没有问题的。页面也能读取,能够显示出条数,但就是不能显示出数据
      

  10.   

    应该就是你 js问题,你把你的js代码贴上来看看
      

  11.   


    var json = {"name":"Mike","sex":"女","age":29}; 
    alert(typeof json);
    var temp = obj2str(json);
    alert(temp);
    alert(typeof temp);
    //下面这个方法是将json对象转换为字符串
    function obj2str(o){
        var r = [];
        if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
        if(typeof o =="undefined") return "undefined";
        if(typeof o == "object"){
            if(o===null) return "null";
            else if(!o.sort){
                for(var i in o)
                    r.push(i+":"+obj2str(o[i]))
                r="{"+r.join()+"}"
            }else{
                for(var i =0;i<o.length;i++)
                    r.push(obj2str(o[i]))
                r="["+r.join()+"]"
            }
            return r;
        }
        return o.toString();
    }
      

  12.   

    window.onload=function(){
    var singleRecordOper=$("#singleRecordOper").val();
    $.toolBarOperHandle({
    toolbarName:'ctToolbar'
    });
    $("#recordListManageGrid").buildJqGrid({
    gridId:'recordListManageGrid',
    url:'cenum/queryCenum.action',
    editurl:'cenum/deleteCenum.action',
    colNames: [
    '枚举项序号','枚举类别名称','枚举项值','基本操作'
    ],
    colModel: [
               {name: 'ItemOrder', index: 'item_order',width: '100%',align: 'center',key:true},
               {name: 'EnumName', index: 'enum_name',width: '100%',align: 'center'},
               {name: 'ItemValue', index: 'item_value',width: '100%',align: 'center'},
               {name: 'operation', index : 'operation', width : '100%', align: 'center', sortable:false,search:false}
               
    ],
    height:275,
    pager: 'recordListManagePager',
    caption:'枚举定义表',
    toolbarName:'ctToolbar',
    btnHtml:singleRecordOper
    });

    };
    jQuery(function($){
    $("#viewDialog").dialog({
    autoOpen: false,
    modal: true,
    bgiframe:true,
    height:400,
    width:550,
    position:'top',
    resizable: false
    });
    });
    function searchList(){
    var param = {
    "cenum.ItemOrder" : $("#ItemOrder").val()
    };
    var caption='枚举定义表';
    $("#recordListManageGrid").setGridParam(
    {
    ajaxGridOptions:{type:'post',contentType:'application/x-www-form-urlencoded;charset=gbk'},
      postData:param
        }
    ).setCaption(caption)
     .trigger("reloadGrid");
    }
    function deleteRowHandle(obj){
    $.deleteRowHandle({
    gridId:'recordListManageGrid',
    functionName:'searchList',
    obj:obj
    });
    }
    function edit(obj){
    $("#viewForm :input").removeAttr("readonly");
    $("#viewForm #ItemOrder").attr("readonly","readonly");
    var index = $(obj).attr('index');
    setProperty($('#recordListManageGrid').jqGrid('getRowData', index));
    $('#viewDialog')
    .dialog('option', 'title', '编辑')
    .dialog('option','buttons',{
    "修改":function(){
    // if($('#viewForm').validate().form())
    {
    $.OkPressed({
    dialogId:'viewDialog',
    type:'edit',
    formId:'viewForm',
    gridId:'recordListManageGrid',
    param:setParam(),
    editurl:'cenum/editCenum.action',
    addurl:'cenum/addCenum.action',
    functionName:'searchList'
    });
    }
    },
    "取消":function(){
    $('#viewDialog').dialog('close');
    }
    })
    .dialog('open')
    .bind('dialogclose',function(){
    $('#viewForm').resetForm()
     .find("td:has(:input) span").remove();
    });
    $("button.ui-state-default").css("float","none");
    $("div.ui-dialog-buttonpane").css("text-align","center");
    };
    function add(){
    $("#viewForm :input").removeAttr("readonly");
    $('#viewDialog')
    .dialog('option', 'title', '添加')
    .dialog('option','buttons',{
    "确定":function(){
    if($('#viewForm').validate().form())
    {
    $.OkPressed({
    dialogId:'viewDialog',
    type:'add',
    formId:'viewForm',
    gridId:'recordListManageGrid',
    param:setParam(),
    editurl:'cenum/editCenum.action',
    addurl:'cenum/addCenum.action',
    functionName:'searchList'
    });
    }
    },
    "取消":function(){
    $('#viewDialog').dialog('close');
    }
    })
    .dialog('open')
    .bind('dialogclose',function(){
    $('#viewForm').resetForm()
     .find("td:has(:input) span").remove();
    });
    $("button.ui-state-default").css("float","none");
    $("div.ui-dialog-buttonpane").css("text-align","center");
    }
    function view(obj){
    $.addOrEditOrView({
    dialogId:'viewDialog',
    type:'view',
    formId:'viewForm',
    gridId:'recordListManageGrid',
    obj:obj,
    functionName:'searchList' //查询函数的名称
    });
    }
    function setProperty(obj){
    $("#viewForm #ItemOrder").val(obj.ItemOrder);
    $("#viewForm #EnumName").val(obj.EnumName);
    $("#viewForm #ItemValue").val(obj.ItemValue);
    }
    function setParam(){
    return $("#viewForm").serialize();
    }
    function clearInput(){
    $.resetHandle({
    formId:'searchForm'
    });
    }
      

  13.   

    你看看你的obj里面是什么东东?是null? 仔细的检查你的代码,我感觉像是后台你那个地方没有判断。。
      

  14.   

    我用了JQGRID,有没有可能是因为这个控件不能显示的啊?
      

  15.   

    我也是用的JQGRID 有时候你的值是NULL的也可能是错误的
      

  16.   

    可是我的值不是NULL啊,也出错啊