JSONSerialize結果のプロパティ名を変更する

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で指定した名前を使わ馴けばならないようです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする