Php 将JSON字符串转换为变量以进行回显

Php 将JSON字符串转换为变量以进行回显,php,foreach,json,Php,Foreach,Json,我有以下JSON字符串: [{\"index\":0,\"date\":\" 20120030\",\"title\":\"afsa\"}] 我需要将内容导出到每个变量中 这就是到目前为止它是如何被拾起的 $json_data_string = $_POST['hidden_event']; // sanitize however $array_data = json_decode($json_data_string); echo $json_data_string; 我需要能够把每

我有以下JSON字符串:

[{\"index\":0,\"date\":\" 20120030\",\"title\":\"afsa\"}]
我需要将内容导出到每个变量中

这就是到目前为止它是如何被拾起的

 $json_data_string = $_POST['hidden_event']; // sanitize however
 $array_data = json_decode($json_data_string);

 echo $json_data_string;
我需要能够把每一个都回音出来。例如:

 foreach {
   echo $date;
   echo $title;
 }
提前感谢您的帮助。

您可以使用$array\u数据上的函数来获取变量

$json_string = $_POST['hidden_event'];
$array = json_decode ( $json_data_string);

extract ($array);

echo $date;
echo $title;
$array_data = json_decode($json_data_string); 
extract($array_data); 
echo $index; 
echo $date;
您可以对$array_数据使用函数来获取变量

$array_data = json_decode($json_data_string); 
extract($array_data); 
echo $index; 
echo $date;
尝试var_dump,这将让您了解$array_数据的结构。如果你这样做

echo '<pre>';
var_dump($array_data);
echo '</pre>';
你会得到更漂亮的垃圾。从这里很容易看到如何回显变量。

尝试var\u dump,这将让您了解$array\u数据的结构。如果你这样做

echo '<pre>';
var_dump($array_data);
echo '</pre>';

你会得到更漂亮的垃圾。从这里可以很容易地看到如何回显变量。

我想如果您想使用jquery使用它,您可以这样做:-

      $.ajax({
                          type: "POST",
                          url: URL,
                          cache:false,
                          data: values,
                          dataType:'json',
                          success: function(json)
           {
                                var date = json.date;
                                alert(date);
                                }       // end success function
                        });  
或者像这样:-

      $.ajax({
                          type: "POST",
                          url: URL,
                          cache:false,
                          data: values,
                          dataType:'json',
                          success: function(json)
           {
                                var date = json.date;
                                alert(date);
                                }       // end success function
                        });  

我认为,如果您想使用jquery使用它,您可以这样做:-

      $.ajax({
                          type: "POST",
                          url: URL,
                          cache:false,
                          data: values,
                          dataType:'json',
                          success: function(json)
           {
                                var date = json.date;
                                alert(date);
                                }       // end success function
                        });  
或者像这样:-

      $.ajax({
                          type: "POST",
                          url: URL,
                          cache:false,
                          data: values,
                          dataType:'json',
                          success: function(json)
           {
                                var date = json.date;
                                alert(date);
                                }       // end success function
                        });  


酷,我该怎么做?我已经在我的回答中添加了示例酷,我该怎么做?我已经在我的回答中添加了示例嗯,似乎不起作用。事实上,在$array通过json_解码后,我无法回显它?不,但是。即使我这样做了:将$array_数据与我在问题中遇到的内容进行回显,但它不起作用:shmm,它似乎不起作用。事实上,在$array通过json_解码后,我无法回显它?不,但是。即使我这样做了:将$array_数据与我在问题中遇到的内容进行回显,它也不起作用:当我这样做时。我只是得到null,这意味着您的JSONRequest没有发送任何内容,或者参数并没有命名为您提到的隐藏事件。整理JSON请求中发生的事情很棘手,可以尝试使用var\u转储整个$\u POST,也可以使用$\u GET。您确定您使用的是JSON POST方法,而不是GET吗?如果您有firefox,请尝试使用firebug,这会让您了解这些隐藏的JSON请求会发生什么。根据手册:如果JSON无法解码或编码数据深度超过递归限制,则返回NULL。您应该尝试var_dump$json_data_string;为了查看它是否格式良好,我没有检查json_decode的行为,现在想如果$u POST['hidden_event']不存在,您会更早地发现问题,因此我将得到纠正。试试mathroc的建议,你可能会在那里发现你的问题。当我不能使用普通的调试工具时,我发现var_dump是一种非常简单的方法来查看正在发生的事情。我只是得到null,这意味着您的JSONRequest没有发送任何内容,或者参数并没有命名为您提到的隐藏事件。整理JSON请求中发生的事情很棘手,可以尝试使用var\u转储整个$\u POST,也可以使用$\u GET。您确定您使用的是JSON POST方法,而不是GET吗?如果您有firefox,请尝试使用firebug,这会让您了解这些隐藏的JSON请求会发生什么。根据手册:如果JSON无法解码或编码数据深度超过递归限制,则返回NULL。您应该尝试var_dump$json_data_string;为了查看它是否格式良好,我没有检查json_decode的行为,现在想如果$u POST['hidden_event']不存在,您会更早地发现问题,因此我将得到纠正。试试mathroc的建议,你可能会在那里发现你的问题。当我不能使用普通的调试工具时,我发现var_dump是一种非常简单的方法来查看正在发生的事情。如果你想使用jquery ajax和php来做这件事,我会帮你一点忙。太好了。我只需要将每个语句的数据转换成一个变量。如果你想使用jQueryAjax和php实现这一点,我会帮你一点忙。太好了。我只需要将每个语句的数据转换成一个变量。尝试将行更改为echo$data->date\N和echo$data->title\NH2Ooooo关于->而不是=>是正确的,我纠正了我的输入错误,但你应该更喜欢PHP\u EOL而不是\n@mathrocPHP_EOL对于日志文件或命令行集成很有用,但在将其输出给用户的情况下,它不会有什么区别,因为无论您使用的是\n还是\r\n都取决于服务器是Windows还是*nix,除非使用了标记,否则它将仅对用户可见,并且如果使用了标记,\n和\r\n将被替换为至少在我的Chrome 18上的一个新行。尽管如此,您仍然是对的,您也可以使用PHP_EOL,但请记住,对于output.absolutely,它不会有任何区别。我一直在使用和宣传PHP_EOL,只是因为这样你就不必考虑将行更改为echo$data->date\N和echo$data->title\NH2Ooooo关于->而不是=>是正确的,我纠正了我的输入错误,但你应该更喜欢PHP\u EOL而不是\n@mathrocPHP_EOL对于日志文件或命令行集成很有用,但在将其输出给用户的情况下,它不会有什么区别,因为无论您使用的是\n还是\r\n都取决于服务器是Windows还是*nix,除非使用了标记,并且ta
如果使用了g,则至少在我的Chrome 18上,\n和\r\n都将替换为一个新行。尽管如此,您仍然是对的,您也可以使用PHP_EOL,但请记住,对于output.absolutely,它不会有任何区别。我一直在使用和宣传PHP_EOL,只是因为这样你就不用考虑它了