私は仕事のためにjqueryとjsonを教えています。私は大きな進歩を遂げてきましたが、今では非常に混乱しています。私の最終的な目標は、持っているテキスト ファイルから json を解析し、それらを javascript オブジェクトとして保存して、より多くのことを実行できるようにすることです。
これが私がやったことです。次のデータをjson形式で持っています(私が書いたJavaクラスから作成されました)。data.json は次のようになっていることに注意してください。
{"Time": 15,
"Distance": 20,
"Position":[{"x":5,"y":10},
{"x":15,"y":20}]}
この質問の上記を別の行に並べて読みやすくするようにフォーマットしましたが、生のファイルにはすべてが 1 行に含まれています。
スクリプトで次のコードを使用しました。
$(document).ready(function(){
console.log("ready!");
$.getJSON('data.json', function(key,val)
{
alert(val.Time);
alert(val.Distance);
alert(val.Position);
});
});
しかし、出力されるのは 3 つの「未定義」アラートです。なんで?私の最終的な目標は、時間、距離、および位置を javascript オブジェクトとして保存して、html で作成したグラフに描画できるようにすることです。ただし、アラートがjsonオブジェクトを正しく読み取ったり解析したりしていないため、明らかにそれに近づくことはできません。
そこで、直感で次のように変更しました。
$(document).ready(function(){
console.log("ready!");
$.getJSON('data.json', function(key,val)
{
alert(key.Time);
alert(key.Distance);
alert(key.Position);
});
});
これらは、次のアラートを受け取るという点で、ほとんど有望です。
Alert 1 Output: 15,
Alert 2 Output: 20,
Alert 3 Output: [Object Object], [Object Object]
わかりました、私は近づいていますが、今は非常に混乱しています. キーがアラート出力「時間」、「距離」、および「位置」を提供していて、値が「15」、「20」、および「[オブジェクトオブジェクト]、[オブジェクトオブジェクト]」であってはなりません。json はハッシュテーブルのように機能すると思いました。うーん。
また、Position というリストを解析するために .each(key, val) を実行する必要がありますか? 明らかに Object Object はあまり役に立たないからです。私は基本的にこのリストの位置をJavaScriptのobjとして保存したい
myList = [[5, 10], [15,20]]
とにかく、それが私の考えです。お時間をいただきありがとうございます。返信して助けてくれた人には賛成します。これは私にとって重要です。
よろしく、 GeekyOmega