2012-11-11 90 views
0

我目前正在研究一個php/html/javascript項目,並且正在做ajax發佈到php腳本,該腳本返回json編碼數據。在這個json編碼中,有更多的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編碼時它使用json.Title返回給JavaScript,json.Subtitle等我可以訪問罰款JSON

但是,當我嘗試並獲得類別它不起作用。

我使用json.categories嘗試和這樣就會打印出以下幾點:

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

這看起來像它的工作,所以當我嘗試訪問它,然後不工作每個人的一部分。我試過json.categories[0].Categoryjson.categories.Category[0],但它一直未定。

感謝您提供的任何幫助。

+0

下面顯示的答案如何_should_解決這個問題,但假設如果你不得不從做JavaScript由於某種原因可以說'json.categories = JSON.parse(json.categories)'和_then_訪問'json.categories [0] .Category'(因爲在接受的答案中提到'json.categories'是一個字符串所以你必須解析它,然後才能將它用作對象數組)。 – nnnnnn

回答

1

如果你使用json_encode對數組進行編碼,你得到了string。所以,你的情況,json.categories是一個字符串,而不是一個數組。

然而,json_encode(和解碼)是遞歸的。

所以,你應該再簡單地

$article['categories'] = $category; 

使用沒有編碼。

+1

+1首先回答 – andlrc

+0

@NULL感謝您的幫助 – Boardy

0

沒有等待。你是json將一個數組編碼爲另一個數組的值,這個數組也將被編碼。你應該做的:

$article['categories'] = $category; 
0

添加您的類別JSON數組第陣列文章變量來訪問

$article['categories'] = $category;