Javascript 如何将数组写入字符串转换为实际数组?

Javascript 如何将数组写入字符串转换为实际数组?,javascript,jquery,ajax,arrays,string,Javascript,Jquery,Ajax,Arrays,String,我有这个: var chart = { chart_bar : data : [{label:"A", data:[[0, 5], [1, 1]]}] } 数据变量必须是数组。我通过ajax传递了一个变量。变量的值是{label:“C”,数据:[[0,4],[1,3]]},我将它赋给数据变量,然后脚本就不工作了 PHP: javascript: $.ajax({ url : "..../get_data", //no problem with the url d

我有这个:

var chart = {
   chart_bar : 
    data : [{label:"A", data:[[0, 5], [1, 1]]}]
}
数据
变量必须是数组。我通过ajax传递了一个变量。变量的值是
{label:“C”,数据:[[0,4],[1,3]]}
,我将它赋给
数据
变量,然后脚本就不工作了

PHP:

javascript:

$.ajax({
    url : "..../get_data", //no problem with the url
    data: "data="+somedata,
    type: "post",
    success : function(data_chart){

        var chart = {
            chart_bar : 
            data : [ data_chart ] // and the program doesn't work
            init : function(){
                alert(data_chart.toSource()); // it says (new String("{label:"C", data:[[0, 4], [1, 3]]}")), so the data_chart is a string
            }
        }
    }
});
但如果我设定

        var chart = {
            chart_bar : 
            data : [ {label:"C", data:[[0, 4], [1, 3]]} ] // and the program works
            init ; function(){
                alert(this.data.toSource()); // it says [ {label:"C", data:[[0, 4], [1, 3]]} ], so this is an array
        }

data\u chart
变量如何成为数组?有没有办法在不更改字符串值/文本的情况下将字符串转换为数组?

将ajax设置为具有类似于
数据类型:“json”
的属性,这样它会自动将返回的字符串转换为对象,否则需要使用
数据图表=json.parse(数据图表)

PHP

还请注意,您可以使用php的json_编码,如
echo json_encode($objorray)
来回显对象或数组的json字符串

JS


将ajax设置为具有类似于
dataType:“json”
的属性,这样它会自动将返回的字符串转换为对象,否则需要使用
data\u chart=json.parse(data\u chart)

PHP

还请注意,您可以使用php的json_编码,如
echo json_encode($objorray)
来回显对象或数组的json字符串

JS


最好使用PHP的json_encode()函数将数据生成为格式正确的json,然后使用json.parse()或@Patrick Evans的jQuery建议读取JS中的数据

PHP:


最好使用PHP的json_encode()函数将数据生成为格式正确的json,然后使用json.parse()或@Patrick Evans的jQuery建议读取JS中的数据

PHP:


使用JSON在服务器和客户端之间共享数据。如果将$.ajax“数据类型”设置为“JSON”,该怎么办?我已经试过了,但是您知道,
{label:“C”,data:[[0,4],[1,3]]}
不是很好的json格式的文本,所以ajax返回错误。使用json在服务器和客户端之间共享数据。如果您将$.ajax“数据类型”设置为“json”,该怎么办?我已经试过了,但是你知道,
{label:“C”,data:[[0,4],[1,3]]}
不是很好的json格式的文本,所以ajax返回错误。谢谢,我找到了方法。但是在php中如何使字符串成为整数呢?我有$jml=“2”,我希望它是$jml=2。@OkiErieRinaldi使用
intval($jml)
,但您不需要这样做,因为php和javascript都试图将其变量强制为所需的类型。因此,如果执行“2”*2,php和javascript将强制“2”为2.oh ya,,我认为intval()无法转换它。再次感谢。现在它工作了汉克斯,我找到路了。但是在php中如何使字符串成为整数呢?我有$jml=“2”,我希望它是$jml=2。@OkiErieRinaldi使用
intval($jml)
,但您不需要这样做,因为php和javascript都试图将其变量强制为所需的类型。因此,如果执行“2”*2,php和javascript将强制“2”为2.oh ya,,我认为intval()无法转换它。再次感谢。现在它工作了汉克斯,我找到路了。但是在php中如何使字符串成为整数呢?我有$jml=“2”,我希望它是$jml=2。谢谢,我找到了方法。但是在php中如何使字符串成为整数呢?我有$jml=“2”,我希望它是$jml=2。
        var chart = {
            chart_bar : 
            data : [ {label:"C", data:[[0, 4], [1, 3]]} ] // and the program works
            init ; function(){
                alert(this.data.toSource()); // it says [ {label:"C", data:[[0, 4], [1, 3]]} ], so this is an array
        }
function get_data(){
   //note this is not proper json format
   echo '{label:"C", data:[[0, 4], [1, 3]]}'; 
   //should be
   echo '{"label":"C","data":[[0,4],[1,3]]}';  
}
$.ajax({
   url : "..../get_data", //no problem with the url
   data: "data="+somedata,
   type: "post",
   dataType:"json",
   success :
      function(data_chart){
         //if valid JSON string was returned from the php script data_chart will be an object
         var chart = {
            chart_bar : 
            data : [ data_chart ],
            init : function(){
               alert(data_chart.toSource()); 
            }
         }
      }
});
$data = array();
$data['label'] = "C";
$data['data'] = [[0,4],[1,3]];
print json_encode($data);