2017-12-15 6 views
0

私はJSONとこのフォーラムで非常に新しく、誰かが助けてくれることを願っています。私が持っている別のExternalData.jsonファイルで別々の行にjsonを書く方法

<script type="text/javascript" src="ExternalData.json"></script> 

var mydata = JSON.parse(data); 
alert(mydata.length); 

var div = document.getElementById('data'); 

alert(mydata[0].name); 
alert(mydata[1].name); 
alert(mydata[0].age); 
alert(mydata[1].age); 

:私は以下のjavascriptを持っているHTMLファイルで

data = '[{"name" : "Bob", "age" : "2"},{"name" : "Mary", "age" : "4"}]'; 

すべてが正常に動作し、しかし、JSONファイルにリターンマークを追加しようとすると、

data = '[ 
    {"name" : "Bob", "age" : "2"}, 
    {"name" : "Mary", "age" : "4"}]'; 

これはもう機能しません。

私は何が欠けていますか?何か基本的だけど、私は分かりません!

これは最終的にコーディングに慣れていない同僚によって更新される大量のデータになります。すべての情報を1行にまとめることはできません。

+0

を。なぜあなたはvarのようなStringをvarに割り当てますか? Object Notationを使用してください。 – PHPglue

答えて

2

あなたの問題は、ブラウザが文字列内の改行で何をすべきかを理解しておらず、エラーが発生している可能性が高いことです(F12にチェックしてください)。私にとっては(Chrome)、文字列をコンパイルできず、最初の行だけが文字列の内容として見えました。

改行リテラルをエスケープする必要があります。 javascriptの各改行に後方スラッシュを追加します。これは、一旦コンパイルされると文字列を一つの行にマージします。あるいは、あるブラウザでは、一度コンパイルすると改行を保持します。

var data = '[\ 
    {"name" : "Bob", "age" : "2"},\ 
    {"name" : "Mary", "age" : "4"}]'; 

あなたがここにこの詳細を読むことができます:JavaScript string with new line - but not using \n

+0

完璧なおかげで!私はそれが簡単だと知っていたが、私の人生はそれを働かせることができませんでした:) – Nadine

+0

@ナディーンそれを解決した場合は、この答えの左側にあるチェックマークをクリックしてください。ありがとう、スタックオーバーフローへようこそ。 – pepperjack

+0

それは私に6分待っていた...理由はない...しかし、完了:) – Nadine

0

pepperjackの答えは動作しますが、それはあなたのJSONファイルより多くのトラブルを維持するようになります。 data='...';せずに外部のJSONファイルを作成し、XMLHTTPを使用して、それをつかむために良いだろう:

<script language="JavaScript"> 
    function test() { 
     var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.onreadystatechange = function() { 
      if (this.readyState == 4 && this.status == 200) { 
       parseResponse(this.responseText); 
      } 
     }; 
     xmlhttp.open("GET", "demo.txt", true); 
     xmlhttp.send(); 
    } 
    function parseResponse(data) { 
     var mydata = JSON.parse(data); 
     alert(mydata.length); 
     alert(mydata[0].name); 
     alert(mydata[1].name); 
     alert(mydata[0].age); 
     alert(mydata[1].age); 
    } 
</script> 

demo.txtは、単純に含まれている場合:あなたはVARに割り当てる場合はJSONではありません

[ 
    {"name" : "Bob", "age" : "2"}, 
    {"name" : "Mary", "age" : "4"} 
] 
関連する問題