后台得来的字符串,在js怎么变成[]

下面的是我在js里面需要的东西
var data = [
{name : 'Other',value : 0.73,color:'#6f83a5'},
{name : 'IE',value : 35.75,color:'#a5c2d5'},
{name : 'Chrome',value : 29.84,color:'#cbab4f'},
{name : 'Firefox',value : 24.88,color:'#76a871'},
{name : 'Safari',value : 6.77,color:'#9f7961'},
{name : 'Opera',value : 2.02,color:'#a56f8f'}
];
alert(data);
打印结果是 [object Object],[object Object]....
----------------------------上面是我想得到的--------------------------------------------
但是我从action 定义了一个String da=
"{name : 'Other',value : 0.73,color:'#6f83a5'}," +
"{name : 'IE',value : 35.75,color:'#a5c2d5'}," +
"{name : 'Chrome',value : 29.84,color:'#cbab4f'}," +
"{name : 'Firefox',value : 24.88,color:'#76a871'}," +
"{name : 'Safari',value : 6.77,color:'#9f7961'}," +
"{name : 'Opera',value : 2.02,color:'#a56f8f'};";
通过AJAX获得了,输出的是String值,不是object
我要怎么定义,怎么得到我想要的呢。

你的data定义的是json的数据结构.你直接输出肯定是显示不了的.需要进行一个转换.

我给你写了一个转换函数.  这个代码粘贴到这里。格式貌似有问题。我再加个附件。

 
<script type="text/javascript" src="
>
<script type="text/javascript">
 
 jQuery.extend(
 {
  /**
   * @see  将javascript数据类型转换为json字符串
   * @param 待转换对象,支持object,array,string,function,number,boolean,regexp
   * @return 返回json字符串
   */
  toJSON : function (object)
  {
   var type = typeof object;
   if ('object' == type)
   {
    if (Array == object.constructor)
     type = 'array';
    else if (RegExp == object.constructor)
     type = 'regexp';
    else
     type = 'object';
   }
      switch(type)
   {
         case 'undefined':
       case 'unknown': 
     return;
     break;
    case 'function':
       case 'boolean':
    case 'regexp':
     return object.toString();
     break;
    case 'number':
     return isFinite(object) ? object.toString() : 'null';
       break;
    case 'string':
     return '"' + object.replace(/(
,
       function(){   
                 var a = arguments[0];                   
        return  (a == '\n') ? '\\n':   
                       (a == '\r') ? '\\r':   
                       (a == '\t') ? '\\t': ""  
             }) + '"';
     break;
    case 'object':
     if (object === null) return 'null';
        var results = [];
        for (var property in object) {
          var value = jQuery.toJSON(object[property]);
          if (value !== undefined)
            results.push(jQuery.toJSON(property) + ':' + value);
        }
        return '{' + results.join(',') + '}';
     break;
    case 'array':
     var results = [];
        for(var i = 0; i < object.length; i++)
     {
      var value = jQuery.toJSON(object[i]);
           if (value !== undefined) results.push(value);
     }
        return '[' + results.join(',') + ']';
     break;
      }
  }
  
  
 });
var data = [
         {name : 'Other',value : 0.73,color:'#6f83a5'},
         {name : 'IE',value : 35.75,color:'#a5c2d5'},
         {name : 'Chrome',value : 29.84,color:'#cbab4f'},
         {name : 'Firefox',value : 24.88,color:'#76a871'},
         {name : 'Safari',value : 6.77,color:'#9f7961'},
         {name : 'Opera',value : 2.02,color:'#a56f8f'}
   
         ];
   
   var str =  $.toJSON(data);
alert(str);
 
</script>

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-29
var data = [
        {name : 'Other',value : 0.73,color:'#6f83a5'},
        {name : 'IE',value : 35.75,color:'#a5c2d5'},
        {name : 'Chrome',value : 29.84,color:'#cbab4f'},
        {name : 'Firefox',value : 24.88,color:'#76a871'},
        {name : 'Safari',value : 6.77,color:'#9f7961'},
        {name : 'Opera',value : 2.02,color:'#a56f8f'}
         ];
alert(JSON.stringify(data,null,2));

//注:如果是IE9以下的浏览器,需要引入json2.js 自己到网上下。

本回答被提问者采纳
第2个回答  2013-09-29
action那里定义成map数组 Map[] 然后转成json字符串(使用json-lib.jar的类),传到前端后,将json串转换成js对象(网上有个json.js的文件)
第3个回答  2013-09-29
da = eval("da = " + da);