JSONのコメント行の書き方について

このQ&Aのポイント
  • JSONでコメント行を書くにはどうしたらよろしいのでしょうか。
  • JSONは、そもそもコメント行の記載ができないのでしょうか。
  • JSONのデータにコメントを記述する方法について教えてください。
回答を見る
  • ベストアンサー

JSONのコメント行の書き方について

いつもお世話になります。 JSONでコメント行を書くにはどうしたらよろしいのでしょうか。 {"title":"sample data", "person":[ {"id":"1","nameFirst":"太郎","nameLast":"鈴木","age":"24","birth":"1234-12-22"}, {"id":"1","nameFirst":"花子","nameLast":"鈴木","age":"24","birth":"3456-12-22"} ]} などというデータを javascriptと同じ要領で以下のようにコメントアウトすると {"title":"sample data", "person":[ // {"id":"1","nameFirst":"太郎","nameLast":"鈴木","age":"24","birth":"1234-12-22"}, {"id":"1","nameFirst":"花子","nameLast":"鈴木","age":"24","birth":"3456-12-22"} ]} $.getJSON(jsonDataUrl,function(json) { successFunc(json); return; }); で、読み取れなくなってしまいます。 JSONは、そもそもコメント行の記載ができないのでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Chaire
  • ベストアンサー率60% (79/130)
回答No.2

> コメント行 ありません。注釈自体は(例でやっているように)title なり description なりのフィールドを設ければ良い。また、ECMA 262-3 までの範囲なら、"$" は機械処理の目印に使う文字ですので(前処理、後処理、マクロ、埋め込み)、 それを含むフィールド名は無視するなど自分ルールでも作って下さい。 無視したいデータの構造が分かっているなら: var json = '{"title":"sample data","person":[{"id":"1","nameFirst":"太郎","nameLast":"鈴木","age":"24","birth":"1234-12-22"},{"id":"1","nameFirst":"花子","nameLast":"鈴木","age":"24","birth":"3456-12-22"}]}'; json = JSON.parse (json, function (name, value) {  if (name === 'person') {   var result = [ ], r;   for (var I = value.length, i = 0; i < I; i++) {    r = value[i];    if (r.id != 1 || r.nameFirst !== '太郎' || r.nameLast !== '鈴木' || r.age != 24 || r.birth !== '1234-12-22') {     result[result.length] = r;    }   }   return result;  }  return value; }); alert (JSON.stringify (json, undefined, 2)); // JSON オブジェクトがなければ www.json.org のライブラリを使う

rqg2010
質問者

お礼

Chaireさん、ご丁寧にサンプルまで示していただきありがとうございます。 >ありません。注釈自体は(例でやっているように)title なり description なりのフィールドを設ければ良い。 そうですか。 私の発想を変えないとダメなようです。 どうもありがとうございます。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 JavaScript上はJSONとして送られてきた文字列をそのままデータとして利用しますので//が入るとおかしいことになってしまい、エラーになります。 JSONとしてデータを返す際にコメントを使いたいシチュエーションが思い浮かばないのですがやりたいことを補足いただければ解決策が出てくるかもしれません。

rqg2010
質問者

補足

LancerVIIさん、早速レスありがとうございます。 >やりたいことを補足いただければ解決策が出てくるかもしれません。 1.サンプルデータを用いて動作確認を行うことが目的です。 そして、動作しても後に再び不具合が出た時のためにそのサンプルデータを残しておき復活させてチェックをしようと思っています。 ですから、行単位コメントアウト「//」に相当するものがあるととても助かります。 2.また、データを作成する時にコンマ一つ、シングルクオーテーション一つでデータを読み込まなくなります。その箇所を特定するためにコメントアウトしていき、誤りの箇所を特定する時に使おうと考えています。 他のソフトでJSONデータを作成するというのでなく、javascriptの配列を手作業で入力する程度のJSONデータを扱うことを考えています。 3.連想配列でわかりやすい記載なので操作方法に慣れれば、単なる配列よりもデータの記載がしやすいように思いまして。javascriptで連想配列を記載しても同じとは思いますが。JSONのデータはjavascriptが軽量に扱うというような記載を読んだものですのでとても興味を持ってその扱い方を調べています。 4.更に、JSONデータだと、AJax技術でもって容易に読み込めるようですので。何とか使えるようになりたいと思っています。 javascriptの配列だと、 <script src="・・・" type="text/javascript"></script> で、読み込めはしますが、スマートでないような気がしまして。 誤った理解をしているようなことがありましたら併せて教えていただけるとありがたいです。

関連するQ&A

  • Excel(マクロ?VBA?)で最大日付の行を抽出

    Excelのデータ抽出で困っております。 下記のようなデータがあり、各IDの最大日付の行を抽出しようとしていますが、抽出方法がわからず、困っています。  氏名  ID   日付   山田太郎 10 2012/12/01 山田太郎 10 2013/08/01 山田太郎 10 2014/12/01 山田太郎 10 2015/08/01 山田花子 20 2012/12/01 山田花子 20 2013/08/01 山田花子 20 2013/12/01 この際に、 山田太郎 10 2015/08/01 山田花子 20 2013/12/01 という2つの行を抽出したいですが、抽出方法がわかりません。 関数を使ってやろうとも思いましたが、関数をどれを使えばいいかわかりません。 別シートに抽出でも全く問題ありませんので、恐れ入りますが、抽出方法を教えてください。 よろしくお願いいたします。

  • 【javascript】JSON形式のデータをダンプしたい。

    JSON形式のデータをダンプしたいです。 toSource()を使って以下の様に書いてみました。 <html> <head> <SCRIPT LANGUAGE='JavaScript1.2'><!-- function init(){ element=document.getElementById("data").innerHTML; list=eval("("+element+")"); document.getElementById("out").innerHTML=list.toSource(); } //--></script> </head> <body onload="init()"> <div id="data"> [ {name:"山田", age:30}, {name:"鈴木", age:40}, {name:"佐藤", age:50} ] </div> <div id="out"></div> </body> </html> IEとOperaではエラーになってしまいました。 FFではエラーなく動作しました。結果を以下に記します。 [ {name:"山田", age:30}, {name:"鈴木", age:40}, {name:"佐藤", age:50} ] [{name:"\u5C71\u7530", age:30}, {name:"\u9234\u6728", age:40}, {name:"\u4F50\u85E4", age:50}] ※全角文字がそのまま表示されない。 なにか良い方法は無いでしょうか?

  • JQueryを用いたJsonとの非同期通信について

    下のソース //画面構築完了後 $(function() { //ボタンのクリックイベントで $("#btn_1").click(function(){ //data/sample.jsonのデータを取得し、jsonというオブジェクトに入れる $.getJSON("fdas.json", function(json){ var rows = ""; //テーブルとして表示するため、htmlを構築 //for (i = 0; i < json.length; i++) { rows += "<tr>"; rows += "<td>"; for (var kaey in json) { rows += (json[kaey]); } rows += "</td>"; rows += "</tr>"; //} //テーブルに作成したhtmlを追加する $("#tbl").append(rows); }); }); }); このソースに <input id="btn_1" type="button" value="データ取得" /> を使ってボタンを押しているのですが、FirefoxだとJsonのデータを更新してから押してもデータが変更されず、ChromeだとF5とかを幼くても更新されます。 ブラウザによって挙動が違うのはソースが間違っているからですか? それともJsにもHTML5やCSS3のように、対応ブラウザなどがあるのでしょうか??? また自分はまだよくわかっていないのですが、prototype.jsを用いた場合のほうが簡単だということがありましたらそちらも教えていただけると幸いです 教えてください!!!

  • JSONをperlで受け取る方法

    お世話になります。 jQueryを使用します。 Handsontableを使いたいと思います。 表に入力した内容をperlのCGIにデータ送信して、処理をしたいのですが どのようにすればいいのかがわからずにいます。 http://handsontable.com/demo/ajax.html こちらにサンプルがあるのですが、saveのときの処理がよくわかりません。 $.ajax の data にただの文字列を設定すれば、CGIでの受け取り方がわかるのですが、 表のデータ?(handsontable.getData()の部分)の場合、CGIではどのように 受け取れば良いのでしょうか? $.ajax({   url: "netaut2.cgi",   data: {"data": "abcde"},   dataType: 'json',   type: 'POST',    : } ↑こうであれば、CGI側は $form = new CGI; $val = $form->param('data'); このようにして$valに"abcde"とデータが取れますが、 var json_data = [ {"name" : "Taro", "age" : 19}, {"name" : "Hana", "age" : 25} ]; $.ajax({   url: "netaut2.cgi",   data: json_data,   dataType: 'json',   type: 'POST',    : } のようにした場合がわかりません。 宜しくお願い致します。

    • ベストアンサー
    • AJAX
  • JSON Perlで指定のデータのみ抽出

    恐れ入ります。 {"num":29,"name","山田太郎"}{"num":30,"name","山田花子"}{"num":31,"name","山田次郎"} というJSONデータを読み込むことは出来たのですが、 この中からnumを、例えば29と指定したら、 {"num":29,"name","山田太郎"}のみが表示される形にしたいのですが、方法が分かりません。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • JSON形式で取得した8桁の数字を○○年にしたい

    8桁の数字データを、○○年○○月○○日と変換して表示させたいのですが、どうやったらよいでしょうか。 今、手元に、csvからデータを取得して表示させるサンプルがあります。 その元データの生年月日部分は、8桁の数字です。 // JSON形式で取得したデータを配列に変換 var list = eval( '(' + data + ')' ); // データを1データ毎 $.each(list,function(i) { // 各項目毎に変数に入れる var birth = makeTableData(this.birth,"data_birth"); みたいな感じになっています。 イメージしているのは、 substr($hoge,0,4); みたいな感じで、 この格納されている8桁の数字データを、 ○○年○○月○○日と変換させ表示させたいのですが、 どうすればよいのでしょうか? また、「JSON形式で取得したデータを配列に変換」って意味は、 javasvriptオブジェクトに変換しているってことなのでしょうか?

  • jQueryの略記について

    HTTP通信でJSON形式のデータを読み込むメソッドがあります。 サンプルなどをみると下記のように書かれています。これは略記で書かれているのでしょうか??? $.getJSON() ※引数は省略しています。 上記のコードを略記で書くと $.getJSON() 略記で書かないと jQuery.getJSON() という事で合っていますか。 すみませんが宜しくお願いします。 では、失礼します。

  • getJSONで受け取れるよう出力するには?

    ■前提 ・$.getJSONでAPIからデータ取得するサンプルがあります ・この時、第1引数のURLを叩くと、データが表示されます $.getJSON('http://hoge … &callback=?') .error( ajaxError ) .success(function( data ){ ・動作確認のため、「第1引数のURLで表示されたデータ」を取得(コピペ)して、「piyo.php」としてアップロードしてみました ■質問 ・$.getJSON第1引数を「piyo.php」へ変更すると、同じようにデータ取得できると思ったのですが、うまくいきません ・何故でしょうか? ・「json値」をサーバが返すようにすれば良いのでしょうか? ・それはどうやるのでしょうか? ・「echo json_encode?」「header('Content-Type:?」それとも、拡張子がjsonじゃないといけないのでしょうか?

    • ベストアンサー
    • AJAX
  • SQLでテーブルのつなげ方がわからない(やや複雑)

    こんにちは VBAのADODB.Streamなのですが、SQLでテーブルをつなげる方法がわかりません。 どのようなSELECT文を書けば良いのか教えてください。 次のような2つのテーブルがあります。 Persons Relations Personsには、ID、人名、男性かどうか(夫かどうか)が並んでいます。 ID, pName, IsHusband 1, 鈴木太郎, True 2, 鈴木花子, False 3, 山田太郎, True 4, 斉藤花子, False 5, 斉藤太郎, True 6, 山田花子, False Relationsには、人物の婚姻関係が記されています。 ID, yourID, spouseID 1, 1, 2 2, 2, 1 3, 6, 3 4, 5, 4 5, 3, 6 6, 4, 5 (1つめのレコードは、yourID=1:鈴木太郎のspouseID(配偶者ID)=2:鈴木花子といった具合です。一番左のIDはこのテーブル以外で使っていません。) これを次のような表として取得したいと思っています。 1, 鈴木太郎, 2, 鈴木花子 3, 山田太郎, 6, 山田花子 5, 斉藤太郎, 4, 斉藤花子 今試行錯誤しているのですが、まずPersonsでIsHusbandがTrueの人を抜き出して、その人のIDを使ってRelationsからSouseIDを抜き出して・・・・で、それをやっぱりPersons内で検索・・・ とうかぜんぜんわかりません。できませんでした。 実際、Relationsの方は参照するだけで抽出しなくても良い(別にしても良いです)し、JOINするのが同じテーブル同士だし、よくわかりません。 どのように書けば良いか、教えてください。

  • JSON多次元オブジェクト(?)を配列へ変換したい

    ・下記のようなJSON多次元オブジェクト(?)を配列へ変換したいのですが、どうすれば良いでしょうか? ・json_decode試したけどうまくいきませんでした ・出来れば、data以下だけを配列で取得したいです array(1) { [0]=> string(1284) {"version":1,"req_id":null,"error":null,"data":[ {"name":"Sad","j_title":"A","id":"23","thumb":"hoge1","date":"2009","title":"Ch","url":"hoge2"}, {"name":"Wil","j_title":"r","id":"30","thumb":"hoge3","date":"2013","title":"Po","url":"hoge8"} ]} [1]=> string(1282) {"version":1,"……

    • ベストアンサー
    • PHP

専門家に質問してみよう