御世話になります。
jsonデータを扱うときに少し気になることがありました。今日はその疑問点について質問したいと思います。
それは、jsonデータとはどのようなデータかという定義についてです。
一般的にjsonデータとは、
{"":""}という形を意味していますと思います。
google apps script(javascrit系列の言語)で、以下のjsonデータをapiとして渡すことがありました。
json
1 var payload = { 2 "name": "Trafficvolume60", 3 "description": "Trafficvolume60", 4 "ruleConfig": { 5 "properties": { 6 "limitTotalTrafficMegaByte":100, 7 "inactiveTimeoutDateConst": "IMMEDIATELY" 8 }, 9 "type": "CumulativeTrafficRule" 10 }, 11 "actionConfigList": [ 12 { 13 "properties": { 14 "secretAccessKey": "秘密鍵", 15 "endpoint": "https://lambda.ap-northeast-1.amazonaws.com", 16 "accessKey": "認証鍵", 17 "functionName": "Trafficvolume60", 18 "executionDateTimeConst": "IMMEDIATELY", 19 }, 20 "type": "InvokeAWSLambdaAction" 21 } 22 ], 23 "status": "active", 24 "targetGroupId": "※※" 25 };
私は上記の形をjsonデータと認識していました。しかし、いざapiとしてデータをpostする際に、上記のデータをJSON.stringify(payload)、つまりjsonデータに変換していました。jsonデータをjsonデータに変換するというのは可笑しな話になりますが、上記のJSON.stringify(payload)という処理をしないと、結果的にapiは成功しませんでした。
つまり、上記のデータ構造は、jsonデータではなかったという結論になります。
そこで、jsonデータに渡す前のpayloadとJSON.stringify(payload)した後のデータを確認してみました。
json
1JSON.stringifyを通す前 2{actionConfigList=[{type=InvokeAWSLambdaAction, properties={secretAccessKey="秘密鍵", endpoint=https://lambda.ap-northeast-1.amazonaws.com, accessKey="認証鍵", functionName=Trafficvolume60, executionDateTimeConst=IMMEDIATELY}}], name=Trafficvolume60, description=Trafficvolume60, targetGroupId="※※", ruleConfig={type=CumulativeTrafficRule, properties={inactiveTimeoutDateConst=IMMEDIATELY, limitTotalTrafficMegaByte=100.0}}, status=active} 3
JSON.stringifyを通した後
json
1{"name":"Trafficvolume60","description":"Trafficvolume60","ruleConfig":{"properties":{"limitTotalTrafficMegaByte":100,"inactiveTimeoutDateConst":"IMMEDIATELY"},"type":"CumulativeTrafficRule"},"actionConfigList":[{"properties":{"secretAccessKey":"秘密鍵","endpoint":"https://lambda.ap-northeast-1.amazonaws.com","accessKey":"認証鍵","functionName":"Trafficvolume60","executionDateTimeConst":"IMMEDIATELY"},"type":"InvokeAWSLambdaAction"}],"status":"active","targetGroupId":"※※"}
その違いは、以下に挙げてみました。
0. - 各変数の並び替えに加え
0. - 「 」空白の有無
0. - ""の有無
私の見解では、jsonデータとは、各項目の間に空白がなく、各項目の並び替えがしてあり、尚且つ、""がない状態だと考えています。つまり、{"":""}で構成されているだけでは、jsonにならないということです。
あくまでapiがうまく通すことができた結果を基に考察をしています。
実際のjsonデータの定義について、皆様のご意見を伺いたいと思います。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。