| 4D v18JSON Stringify | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 JSON Stringify 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JSON Stringify ( value {; *} ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| value | Object, Mixed |   | JSON文字列に変換したいデータ | |||||
| * | 演算子 |   | 整形フォーマット | |||||
| 戻り値 | テキスト |   | シリアライズされたJSONテキストを含む文字列 | |||||
JSON Stringifyコマンドは、 value 引数を、JSON文字列へと変換します。このコマンドはJSON Parse コマンドと逆の挙動をします。
シリアライズしたいデータをvalue に渡します。スカラー値(文字列、数字、日付または時間)または4Dオブジェクトあるいはコレクションを渡す事ができます。
注: 4D日付はカレントのデータベース設定によって、"yyyy-mm-dd" あるいは "YYYY-MM-DDThh:mm:sssZ" フォーマットに変換されます(互換性ページ内にある"オブジェクトではISO日付フォーマットの代わりに日付型を使用する"オプションを参照して下さい)。
オブジェクトあるいはコレクションを渡す場合、全ての型の値を含めることができます( JSON データ型 の章を参照して下さい)が、以下のJSONの規則に則っている必要があります。
任意の* 演算子を渡すことによって、戻り値の文字列にフォーマット文字を含めることができます。これによりJSONデータの表示が改善されます(いわゆる整形フォーマティングです)。
スカラー値の変換:
 $vc:=JSON Stringify("Eureka!") // "Eureka!"
 $vel:=JSON Stringify(120) // "120"
 
 $vh:=JSON Stringify(?20:00:00?) // 真夜中から"72000" 秒が経過
 SET DATABASE PARAMETER(Times inside objects;Times in milliseconds)
 $vhms:=JSON Stringify(?20:00:00?) // 真夜中から"72000000" ミリ秒が経過
 
 $vd:=JSON Stringify(!28/08/2013!) // "2013-08-27T22:00:00.000Z" (パリ時間)
 SET DATABASE PARAMETER(Dates inside objects;String type without time zone)
 $vdd:=JSON Stringify(!28/08/2013!) // "2013-08-28T00:00:00.000Z"特殊文字を含む文字列の変換:
 $s:=JSON Stringify("{\"name\":\"john\"}")
  // $s="{\\"name\\":\\"john\\"}"
 $p:=JSON Parse($s)
  // $p={"name":"john"}4Dオブジェクトを、* 演算子ありとなしでシリアライズした場合の例:
 C_TEXT($MyContact)
 C_TEXT($MyPContact)
 C_OBJECT($Contact;$Children)
 OB SET($Contact;"lastname";"Monroe";"firstname";"Alan")
 OB SET($Children;"firstname";"Jim";"age";"12")
 OB SET($Contact;"children";$Children)
 $MyContact:=JSON Stringify($Contact)
 $MyPContact:=JSON Stringify($Contact;*)
  //$MyContact= {"lastname":"Monroe","firstname":"Alan","children":{"firstname":"John","age":"12"}}
  //$MyPContact= {\n\t"lastname": "Monroe",\n\t"firstname": "Alan",\n\t"children": {\n\t\t"firstname": "John",\n\t\t"age": "12"\n\t}\n}このフォーマティングを使った場合の利点はJSONがWebエリアに表示されれば一目瞭然です。


変数へのポインターの使用例:
 C_OBJECT($MyTestVar)
 C_TEXT($name ;$jsonstring )
 OB SET($MyTestVar;"name";->$name) // object definition
  // $MyTestVar= {"name":"->$name"}
 
 $jsonstring :=JSON Stringify($MyTestVar)
  // $jsonstring ="{"name":""}"
  //...
 
 $name:="Smith"
 $jsonstring :=JSON Stringify($MyTestVar)
  //$jsonstring = "{"name" : "Smith"}"4Dオブジェクトのシリアライズ:
 C_TEXT($varjsonTextserialized)
 C_OBJECT($Contact)
 OB SET($Contact;"firstname";"Alan")
 OB SET($Contact;"lastname";"Monroe")
 OB SET($Contact;"age";40)
 OB SET($Contact;"phone";"[555-0100,555-0120]")
 
 $varjsonTextserialized:=JSON Stringify($Contact)
 
  // $varjsonTextserialized = "{"lastname":"Monroe","phone":"[555-0100,
  // 555-0120]","age":40,"firstname":"Alan"}"日付値(パリ時間)を含んでいる4Dオブジェクトのシリアライズの例を考えます。結果の文字列は、カレントのデータベース設定によります。
 C_TEXT($varjsonTextserialized)
 C_OBJECT($Contact)
 OB SET($Contact;"name";"Smith";"birthday";!22/10/1975!)
 $varjsonTextserialized:=JSON Stringify($Contact)"name":"Smith",
"birthday":"1975-10-21T22:00:00.000Z""name":"Smith",
"birthday":"1975-10-22"注: この設定についての詳細は、互換性ページを参照して下さい。
コレクション(パリ時間)の変換の例を考えます。結果の文字列はカレントのデータベース設定によります:
 C_COLLECTION($myCol)
 C_TEXT($myTxtCol)
 $myCol:=New collection(33;"mike";!28/08/2017!;False)
 $myTxtCol:=JSON Stringify($myCol)$myTxtCol="[33,"mike","2017-08-27T22:00:00.000Z",false]"$myTxtCol="[33,"mike","2017-08-28",false]"注: このオプションについての詳細な情報については、互換性ページを参照して下さい。
	プロダクト: 4D
	テーマ: JSON
	番号: 
        1217
        
        
        
	
	初出: 4D v14
	変更: 4D v16 R4
	変更: 4D v16 R6
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v18)
	
	
	
	
	
 コメントを追加
コメントを追加