0

我目前正在开发一个 php/html/javascript 项目,并且正在将 ajax 发布到一个返回 json 编码数据的 php 脚本中。在这个 json 编码中,还有一些更多的 json 编码数据。

下面是我如何对数据进行 json 编码

$category[0]['Category'] = "Category 1";
    $category[1]['Category'] = "Category 2";

    $article['Date'] = "11/11/2012 22:42:00";
    $article['Title'] = "This is the title";
    $article['Subtitle'] = "This is the subtitle";
    $article['Content'] = "This is the content1";
    $article['ViaName'] = "SomeSite";
    $article['ViaAddress'] = "http://localhost";
    $article['SourceName'] = "N/A";
    $article['SourceAddress'] = "N/A";
    $article['categories'] = json_encode($category);

    echo json_encode($article);

当使用 json.Title、json.Subtitle 等返回到 javascript 时,我可以很好地访问得到 json 编码的 $article。

但是,当我尝试获取类别时,它不起作用。

我尝试使用 json.categories 并打印出以下内容:

[{"Category":"Category 1"},{"Category":"Category 2"}]

这看起来像是在工作,所以当我尝试访问每个单独的部分时,它就不起作用了。我已经尝试过json.categories[0].Categoryjson.categories.Category[0]但它不断出现未定义。

感谢您的任何帮助,您可以提供。

4

3 回答 3

1

如果你用你编码一个数组,json_encode你得到一个string. 所以,在你的情况下,json.categories是一个字符串而不是一个数组。

但是,json_encode(和解码)是递归的。

所以你应该简单地使用

$article['categories'] = $category;

无需再次编码。

于 2012-11-11T22:55:04.763 回答
0

不用等。您正在将一个数组 json 编码为另一个数组的值,该数组也将被编码。你应该这样做:

$article['categories'] = $category;
于 2012-11-11T22:55:10.870 回答
0

将您的类别 json 数组添加到文章数组以使用文章变量访问

$article['categories'] = $category;
于 2012-11-12T00:24:07.173 回答