2024年7月11日木曜日

GoによるJSONのパースについて

Go言語には、JSONのパースをする際に構造体が必要になるライブラリしかなかった

社員から、その点について質問があり
構造体のように枠が決まっていないと
セキュリティ上の問題になりやすいと言うことを説明した

パースする相手がXMLでも同じ状況だった

そこでわたしは以前、任意のXMLをパースして、汎用的な構造体を使ったメモリーマップに保存することにした
そして、そのマップからJSONを作り出すこともやった

その構造体メモリーマップにパースする事は、XMLでも出来たので、JSONにも対応可能だ

というか、JSONのが簡単だろう

それで最近の状況はどうなのか調べてみると、メルカリの技術者がJSONのパースについてライブラリを作っていたのを見つけた

gitの中身は見てないが、やり方は同じなんだろうと思ってる

わたしは以前自分が作ったものに少し不満があった

その不満を突き詰めるとXML Databaseになってしまうのもわかった

MongoDBのSQLite版的な位置付けの物で、内部データはXMLと言うものになり、XQueryを処理する形でデータを抜き出すと言う簡易データベースだ

こいつがかなり厄介で
XQueryの実装に難儀している
モチベも続かない

しかし、今回社員からマイクロサービスの用途でJSONのパースの話を聞かされて、以前作った物がそのまま使えそうなことに気がついた

冒頭で書いたJSONのパースについては、JavaScriptでフロントからのリクエストがあった時に、通信内容はJSONにした方がいいと意見した流れだったのだけど、XML HttpRequestならそのまま使える
JSONをパースする部分を作れば、相互変換もできる
さらに、ファイルシリアライズを実装すれば、あとはXQueryの実装にも使えるようになる

頭の中であれこれスッキリ繋がった気持ちになっている

やはり一人で考えているより、人と話している方が捗る

0 件のコメント: