-2

所以我在我的网站上已经到了一个阶段,我需要将大量信息打包到一个像对象一样的 json 数组中,所以为了做到这一点,我需要在某个键名下打包一个数组信息列表,然后是另一个另一个键名下的一组数据。

例如:

$array = array();

foreach(action goes here)
{
    $array['data1'] = array('information' => data, 'more_information' => more_data)
}

$array['data2'] = array("more data");

这基本上说明了我正在尝试做的事情,我可以部分做到这一点,但是为新数据集命名键只会替换每个数据,而不是在 foreach 循环中添加到其中。

现在,如果这部分不太令人困惑,我需要一些帮助。然后除此之外,一旦解决了这个问题,我需要能够在我的 jQuery 响应中使用数据,所以我需要能够访问每组数据,例如:json.data1[i++].data,理想情况下会返回“more_information”。

4

1 回答 1

0

您需要在该循环中增加一个数字并将结果作为 json 对象提供......

$array = array();
$i = 0;

foreach(action goes here)
{
    $array['data'.$i] = array('information' => data, 'more_information' => more_data)
    $i++;
}

$array['data2'] = array("more data"); 

$data = json_encode($array);

然后在 php 中你可以像这样设置一个 js var:

<script type="text/javascript">
var data = <?php echo $data; ?>;
</script>

然后可以很容易地在js中访问:

alert(data.data1.information);

如果我正确理解您的问题,您希望得到这个对象作为对某事的回应?像 jQuery .ajax 调用一样?

http://api.jquery.com/jQuery.ajax/

这个链接非常清楚地说明了如何使用它。您需要确保指定dataType = "json"然后将您的数据处理放在成功调用中:

$.ajax({
    url: 'some url string',
    type: "GET",
    dataType: "json",
    success: function(data)
    {
        $.each(data, function(i, v){
            console.log(data[i]);
        });
    },
    error: function()
    {
        //error handling
    }
});

这是相对未经测试的,但这个概念是我想要传达的。你基本上在 php 和 json_encode 中制作你的多维数组。这些方法中的任何一种都允许您解析 json。

于 2012-10-02T04:18:45.177 回答