2017-10-16 206 views
0

我想測試一個簡單的代碼,我從JSON文件中提取數據並顯示警報。我對JSON文件的格式感到困惑。 下面的代碼工作完全正常: Working codeenter image description here 代碼:什麼是json文件Javascript的正確格式?

<!DOCTYPE html> 
<html> 
<body> 
<h2>My First Web Pags</h2> 
<p>My first paragraph.</p> 
<script> 
var text = '{ "name":"John", "birth":"1986-12-14", "city":"New York"}'; 
var jsonScript = JSON.parse(text); 
var titledata = jsonScript.name; 
alert(titledata); 
</script> 
</body> 
</html> 

在另一方面,當我改變JSON格式,不會生成警報。 Faulty Codeenter image description here 代碼:

<!DOCTYPE html> 
<html> 
<body> 
<h2>My First Web Pags</h2> 
<p>My first paragraph.</p> 
<script> 
var text = '{ "name":"John", "birth":"1986-12-14", "city":"New York" 
}'; 
var jsonScript = JSON.parse(text); 
var titledata = jsonScript.name; 
alert(titledata); 
</script> 
</body> 
</html> 

我想寫一個使用股票代碼(如AAPL蘋果和MSFT微軟。),要求含股票新聞搜索公司的XML文件的PHP腳本。所有股票消息來自尋找的Alpha股票新聞RSS提要。響應是一個XML格式的對象。 php腳本應該解析返回的XML格式的對象,提取必要的字段並構建一個JSON對象以發送給客戶端。 我使用下面的PHP代碼爲:

​​

返回的JSON數據似乎有一些問題與格式。 我創建了一個與php腳本返回的json格式相同的示例json數據。如果格式不正確,我該如何更正格式?

+6

請不要發佈的代碼圖像;它無法搜索,我們無法將其複製/粘貼到答案中。 –

+2

我沒有看到JSON文件。 –

+2

*「如果格式不正確,我該如何更正格式?」* JSON格式正常。問題是一個字符串文字不能在JavaScript中產生多行。 –

回答

0

這不是JSON格式:

"aaa 
bbb" 

是不是一個有效的字符串(見代碼着色(編輯:我指的是圖像中))

你可以做

"aaa"+ 
"bbb" 

(等同於 「AAABBB」) 或

"aaa\nbbb" 

,如果你想在字符串中包含一個換行符

編輯:所以你的情況:

'{"name": "John","birth": "1986-12-14","city": "new York" 
}' - not a valid json string because not a valid string 



'{"name": "John","birth": "1986-12-14","city": "new York"'+ 
'}' - a valid json string 



'{"name": "John","birth": "1986-12-14","city": "new York"\n}' - a valid json string with a newline 
+0

你的第一個建議也是無效的JSON。你的意思是JavaScript嗎? –

+1

是的,我的建議是非。只有那裏顯示什麼是和不是有效的字符串 – user2887596

+0

我認爲這不是關於字符串。當我將括號移到下一行時,代碼停止工作。我會用結果更新我的問題。 – user45437

0

你不需要定義從字符串JSON對象,是導致你錯誤輸入錯誤字符串var中的最後一個'}'符號。你應該寫在那裏:+'}';

然而JSON是JavaScript對象符號,所以你可以使用它作爲一個對象定義:

var jsonScript = { 
    name: "Jhon", 
    birth: "1986-12-14", 
    city: "New York" 
} 
+0

我如何更正php腳本返回的json數據的格式? – user45437

+0

@ user45437:如果您從PHP生成JavaScript代碼,那麼您應該*不*將JSON放入字符串文字中。也許這有助於:[如何將變量和數據從PHP傳遞到JavaScript?](https://stackoverflow.com/q/23740548/218196)(特別是接受的答案中的方法3)。 –

相關問題