私はHalf Life 2サーバーの詳細を把握するために(protocol-srcdsライブラリを使用して)非常に小さなプログラムに取り組んできました。ワークフローはかなり簡単です。ファイルからサーバーのリストを取得し、それらのそれぞれに照会し、出力を別のファイルに書き出します(vBulletinと結びついているので、PHPスクリプトで表示されます)。それがSQLなどで行われていればうれしいですが、私がまだ学んでいるのを見て、それは今のところ遠すぎるステップです!HaskellでJSONを使用してレコードをシリアライズ
私の質問は、シリアル化、つまりJSONにシリアル化することに関連しています。
jsonify (Just (SRCDS.GameServerInfo serverVersion
serverName
serverMap
serverMod
serverModDesc
serverAppId
serverPlayers
serverMaxPlayers
serverBots
serverType
serverOS
serverPassword
serverSecure
serverGameVersioning)) =
toJSObject [ ("serverName", serverName)
, ("serverMap", serverMap)
, ("serverPlayers", show serverPlayers)
, ("serverMaxPlayers", show serverMaxPlayers) ]
は(私はText.JSON
パッケージを使用しています):今のところ、私はそのようなことを、断片的ヘルパー関数jsonify
を書きました。これは明らかに理想的ではありません。しかし、この段階では、インスタンスを使用してレコードのシリアライザを定義することは理解できません。そのための試みはタイプシステムの不満の壁になりました。
誰かがこれを行う「正しい」方法で私を歩いてもらえますか?レコードをシリアライズするinstance
を定義するにはどうすればよいでしょうか? instance
(showJSON?)で使用する関数は何ですか?
ご協力いただきありがとうございます。
ありがとうございます。私はData.Aesonが言及したのを見ましたが、Text.JSONはまだ正式な実装であるように見えました。私は今夜Data.Aesonパッケージを試してみましょう。それは非常にきれいに見える:)。 – frio
@frio、 'Text。JSONは実際には長い間 "正式な実装"でしたが、現在はData.Aesonにシフトが発生しています... – hvr