Stuctureの場合、各AttributeのJSON Properties > Name in JSONに使いたい名前を指定すればいけます。
残念ながら、Entityにはこのプロパティはなさそうです。
動作確認環境
Platform Version:11.0.212.0
Service Studio Version:11.0.522.0
OutSystemsでは、OutSystems Platform Best Practicesで、名前にはPascalCaseを使うことが推奨されています(AttributeNameのように各単語の先頭が大文字になる)。
これに対して、Google JSON Style Guideでは、JSONのプロパティ名は、CamelCaseが規定されていたりします(attributeNameのように、先頭は小文字に)。
OutSystemsの場合、普通はJavaScriptを大量に使わないのであまり気にしなくてよいです。が、JavaScriptでコードを大量に書く際に、開発標準でGoogle JSON Style Guideを採用するなら、プロパティ名は小文字にする必要があります。
例として、以下のようなStructureの変数ParentStructureがあるとします。
これをそのままJSONSerializeにかけると
{“ChildStructure”:{“Integer”:123,”Boolean”:true},”Integer”:234}
のような結果になります。
このプロパティ名(“ChildStructure”や”Integer”など)をCamelCaseにします。OutSystemsモデル内の変数名は、OutSystemsのBest Practicesに従いたいので、変更しません。
変数の型として指定するStructureを選択し、パラメータのMore…の右にある「…」をクリックしてStructureの詳細な設定ダイアログを表示。
Structure各Attributeを選択し、JSON Propertiesカテゴリの下にあるName in JSONにプロパティ名として使いたい名前を設定してください。
この場合は、ChildStructureというAttributeのName in JSONにchildStructureを指定。
上記設定をすべてのAttributeに行ってJSONSerializeした結果:
{“childStructure”:{“int”:123,”bool”:true},”int2″:234}
なお、この設定をすると、JSONDesirializeするときも、Name in JSONで指定した名前を使わ馴けばならないようです。