JSONDocument
1
Jsonデータを出力したい
1
JSONデータを解析・出力したい場合は、JSONDocumentクラスを使用します。
JSONDocumentクラスのValueプロパティはArray型となっています。
JSONを解析した結果が、JSONDocumentクラスのValueプロパティにArrayオブジェクトとして格納されます。
また、JSONデータとして変換したい場合は、ArrayオブジェクトをJSONDocumentクラスのValueプロパティに代入します。
以上から、任意のJsonデータを作成して出力したい場合は、下記のように行います。
1.
生成したいJsonデータ構造でArrayオブジェクトを作成する
2.
作成したArrayオブジェクトをJSONDocumentクラスのValueプロパティに代入する
3.
JSONDocumentクラスのToStringメソッドでJson文字列に出力する
※ArrayオブジェクトからJSONDocumentへの変換ルール
[]で囲まれた配列はArrayオブジェクトの0番目からの配列
{}で囲まれたオブジェクトは名前をキーとしたArrayオブジェクトの連想配列
[ サンプルコード ]
Form makeJson { Width = 432; Height = 960; Button Button1 { X = 13; Y = 30; Title = "JSON変換-Arrayオブジェクトからの変換"; Function onTouch(e){ /* 例@ 下記のJsonデータを作成する { "AAA": 123, "BBB": 1, "CCC": [ { "DDD": 123, "EEE": 1, "FFF": "!!!" } ] } */ var arr = new Array(); arr["AAA"] = 123; /* JSON型を数値型としたいので、数値として格納 */ arr["BBB"] = 1; /* JSON型を数値型としたいので、数値として格納 */ arr["CCC"] = new Array(); /* []で囲まれた配列はArrayオブジェクトの0番目からの配列とする */ arr["CCC"][0] = new Array(); /* 且つ、{}で囲まれたオブジェクトは名前をキーとしたArrayオブジェクトの連想配列 */ arr["CCC"][0]["DDD"] = 123; arr["CCC"][0]["EEE"] = 1; arr["CCC"][0]["FFF"] = "!!!"; /* JSONデータとして変換したい場合は、ArrayオブジェクトをJSONDocumentクラスのValueプロパティに代入します。 */ var jsondoc = new JsonDocument(); jsondoc.Value = arr; /* JSONDocumentのデータを文字列に変換 */ var jsonstr = jsondoc.ToString(); /* 例A 下記のJsonデータを作成する { "AAA": 123, "BBB": 1, "CCC": [ { "DDD": 123, "EEE": 1, "FFF": "!!!", "GGG": false }, { "DDD": 456, "EEE": 2, "FFF": "!!!", "GGG": true } ] } */ var arr2 = new Array(); arr2["AAA"] = 123; /* JSON型を数値型としたいので、数値として格納 */ arr2["BBB"] = 1; /* JSON型を数値型としたいので、数値として格納 */ arr2["CCC"] = new Array(); /* []で囲まれた配列はArrayオブジェクトの0番目からの配列とする */ arr2["CCC"][0] = new Array(); /* 且つ、{}で囲まれたオブジェクトは名前をキーとしたArrayオブジェクトの連想配列 */ arr2["CCC"][0]["DDD"] = 123; arr2["CCC"][0]["EEE"] = 1; arr2["CCC"][0]["FFF"] = "!!!"; arr2["CCC"][0]["GGG"] = "false"; /* ※Boolean型にしたい場合 */ arr2["CCC"][1] = new Array(); arr2["CCC"][1]["DDD"] = 456; arr2["CCC"][1]["EEE"] = 2; arr2["CCC"][1]["FFF"] = "!!!"; arr2["CCC"][1]["GGG"] = "true"; /* ※Boolean型にしたい場合 */ /* JSONデータとして変換したい場合は、ArrayオブジェクトをJSONDocumentクラスのValueプロパティに代入します。 */ var jsondoc2 = new JsonDocument(); jsondoc2.Value = arr2; /* JSONDocumentのデータを文字列に変換 */ var jsonstr2 = jsondoc2.ToString(); /* ※Boolean型にしたい場合 CRSにおける$False、$Trueは、値としては0、1の数値型のため、Arrayに$Trueを設定した場合、Jsonに変換すると 1(数値型)になってしまいます。 そのため、一旦"true","false"と文字列で値を設定しておいて、変換後に"true"→true、"false"→falseと文字列変換を行う必要があります。 */ jsonstr2 = jsonstr2.Replace( "\"true\"", "true" ); jsonstr2 = jsonstr2.Replace( "\"false\"", "false" ); /* EditBoxに例@と例Aの結果を表示 */ ^.EditBox1.Value = jsonstr; ^.EditBox2.Value = jsonstr2; } } /* 例@の作成結果を表示する */ EditBox EditBox1 { X = 15; Y = 163; Width = 385; Height = 96; } /* 例Aの作成結果を表示する */ EditBox EditBox2 { X = 15; Y = 292; Width = 385; Height = 96; } }
管理番号:JsnHt_001
Biz-Collections Bizの宝箱 トップへ
Biz/Browser HT・Biz/Browser SmartDevice・Biz/Browser AI TIPS集 トップへ