最近用到了YUI,在数据格式上有个问题
//比如从LABEL中读取的数据
var obj = document.getElementById("Label1");
var mydata=obj.innerHTML;
alert(mydata);
/*alert出来的数据是:
{inventory:[{SKU:"23-23874", Quantity:43, Item:"Helmet", Description:"Red baseball helmet. Size: Large."},{SKU:"48-38835", Quantity:84, Item:"Football", Description:"Leather football."},{SKU:"84-84848", Quantity:31, Item:"Goggles", Description:"Light blue swim goggles"},{SKU:"84-84843", Quantity:56, Item:"Badminton Set", Description:"Set of 2 badminton rackets, net, and 3 birdies."}]}
*/YAHOO.example.Data = mydata;
//客户端没有显示数据,提示No records found.
但是,我直接在JS里写var mydata = {inventory:[{SKU:"23-23874", Quantity:43, Item:"Helmet", Description:"Red baseball helmet. Size: Large."},{SKU:"48-38835", Quantity:84, Item:"Football", Description:"Leather football."},{SKU:"84-84848", Quantity:31, Item:"Goggles", Description:"Light blue swim goggles"},{SKU:"84-84843", Quantity:56, Item:"Badminton Set", Description:"Set of 2 badminton rackets, net, and 3 birdies."}]};
alert(mydata);//alert出来是object
YAHOO.example.Data = mydata;
//这样是可以在客户端显示数据的
请问各位,第一段代码中要怎么改才能在客户端显示数据?是不是第一段JS中把字符串转换成object?怎么转
对Javascript接触不多,对JSON更是第一次听说,如果表达不对,请见谅

解决方案 »

  1.   

    var mydata=eval(obj.innerHTML);
      

  2.   

    不对,alert出来是  [object Object],[object Object],[object Object]这样的最后显示的还是No records found.
      

  3.   

    JSON格式本身就是一个JavaScript的Object对象写法,使用这种两种方式:
    var obj = eval(jsonString)
    var obj = new Function("return "+jsonString)()的方式可以生成JavaScript Object
    这样你alert()出来就是[Object]这是正确的结果。
    你还没弄清楚JavaScript Object的基本原理呢还是不要使用框架不然肯定会晕。一般的做法都是将接收到的JSON字符串转成对象之后操作dom显示。
      

  4.   

    var mydata=eval('('+obj.innerHTML+')');
      

  5.   

    http://developer.yahoo.com/yui/docs/JSON.html  你先验证一下看看!
      

  6.   

    这样出来是[object Object],显示的还是No records found.
      

  7.   


    var obj = document.getElementById("Label1");
    eval("var mydata="+obj.innerHTML);
      

  8.   


    谢谢你的建议,我只是临时拉过去做这个,时间还很少,哎用
    var obj = eval(jsonString)
    var obj = new Function("return "+jsonString)()
    两种方法出来的都是[object Object],而不是[Object]
      

  9.   

    这个跟你给的var mydata = {inventory:[{SKU:"23-23874", Quantity:43, Item:"Helmet", Description:"Red baseball helmet. Size: Large."},{SKU:"48-38835", Quantity:84, Item:"Football", Description:"Leather football."},{SKU:"84-84848", Quantity:31, Item:"Goggles", Description:"Light blue swim goggles"},{SKU:"84-84843", Quantity:56, Item:"Badminton Set", Description:"Set of 2 badminton rackets, net, and 3 birdies."}]};
    alert(mydata);//alert出来是object
    YAHOO.example.Data = mydata;
    //这样是可以在客户端显示数据的这个效果是一样的
    不过alert出来的也是[object Object]