2017-03-28 26 views
0

我從PHP的json_encode返回數據消耗 while($row = mysql_fetch_assoc($results)){ echo json_encode($row); }使用PHP json_encode如何在JavaScript

現在,當我控制檯登錄我得到 {「用戶名」:「養育」,「運動」:」網球 「 」緯度「: 」19.166901「, 」經度「: 」72.951720「} { 」用戶名「: 」anirudh「, 」體育「: 」橄欖球「, 」緯度「: 」19.218330「, 」經度「:」 72.978088 「}

問題是我如何獲得訪問返回的字段。它作爲一個字符串返回。當我做JSON.parse 我得到一個錯誤

VM1115:1 Uncaught SyntaxError: Unexpected token { in JSON at position 85 
    at JSON.parse (<anonymous>) 
    at Object.success (form.js:43) 
    at j (jquery.min.js:2) 
    at Object.fireWith [as resolveWith] (jquery.min.js:2) 
    at x (jquery.min.js:4) 
    at XMLHttpRequest.b (jquery.min.js:4) 

請指點。

非常感謝 Archit瓦希

+0

將您的JSON粘貼到jsonlint.com並查看它是否有效。如果這只是一個調用,那麼您應該在這兩行之間留出逗號,並且它們應該封裝在[]或{}中。 – mkaatman

+0

您正在輸出單個JSON對象。構建數組然後進行編碼。 – AbraCadaver

+0

不,它不。 as theres no no seperator between them 錯誤:第6行解析錯誤: ... ude「:」72.951720「} {\t」username「:」anir --------------- -------^ 期待'EOF','}',',',']','{' – archito2

回答

0

你不需要解析JSON data..Simply使用data.objectname

0

你現在的樣子創建JSON,你將有困難,JS解析它得到它。 這是你應該去做的方式。

$result = array(); 
while($row = mysql_fetch_assoc($results)) 
{ 
    $result[] = $row; 
} 
echo json_encode($result); 

,這將給你一個JSON其中,如果使用需要,您可以解析:

var result = JSON.parse(thePHPresult); 

和你的JSON看起來像:

[{"field_1":1,"field_2":"test1"},{"field_1":2,"field_2":"test2"},{"field_1":3,"field_2":"test3"}] 

這是一個JSON陣列,可以被接受爲:

var theJSON = [{"field_1":1,"field_2":"test1"},{"field_1":2,"field_2":"test2"},{"field_1":3,"field_2":"test3"}]; 
 

 
for(var i=0; i< theJSON.length; i++) 
 
{ 
 
console.log(theJSON[i].field_2); 
 
}

+0

謝謝Shakti。 – archito2

0

您必須將行添加到數組中,並在此之後,您可以回顯json_encode()的結果。每個JSON無效後,簡單的行都會回顯。

-1

當你只有一個數據庫結果或者有多行時,你會得到錯誤嗎?

如果您將所有行存儲在數組中,然後echo json對數組進行編碼,那麼是否可以解決您的問題?

+0

這不是一個很大的答案。將問題發佈爲原始問題的評論。 –