2017-10-16 10 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> 

私は検索会社に関する株式ニュースを含むXMLファイルを要求するために、銘柄記号(。マイクロソフトのためのAppleとMSFTのための元AAPL)を使用してPHPスクリプトを記述しようとしています。すべての株価情報はSeeking Alpha Stock Newsの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" 
あなたは、文字列内の改行を含めたい場合

編集:あなたのケースで非常に:あなたは、文字列からJSONオブジェクトを定義する必要はありません

'{"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

、それはあなたが間違って入力して、エラーの原因となっていますあなたの文字列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)に役立ちます。 –

関連する問題