別の方法として、分析に多くの手作業を費やす必要がないように解決したい問題があります。
2 つの JSON オブジェクトがあります (異なる Web サービス API または HTTP 応答から返されます)。2 つの JSON オブジェクト間には交差するデータがあり、類似した JSON 構造を共有していますが、同一ではありません。1 つの JSON (小さい方) は、より大きな JSON オブジェクトのサブセットのようなものです。
2 つのオブジェクト間で交差するすべてのデータを見つけたいと考えています。実際には、各オブジェクトのパラメーター/プロパティの実際の値ではなく、オブジェクト内の共有パラメーター/プロパティにもっと興味があります。最終的に 1 つの JSON 出力からのデータを使用して、API 呼び出しへの入力として他の JSON を構築したいからです。残念ながら、各 API の JSON を定義するドキュメントはありません。:(
これを難しくしているのは、JSON オブジェクトが巨大であることです。Windows のメモ帳で印刷すると、1 ページにまたがります。もう1つは37ページに及びます。API は、1 行に圧縮された JSON 出力を返します。通常のテキスト比較はあまり機能しません。テキスト比較がうまく機能するには、手動で再フォーマットするか、改行などでオブジェクトを分割するスクリプトを使用する必要があります。Beyond Compare ツールで試してみました。
手動で検索/grepを実行できますが、小さなJSON内のすべてのパラメーターを循環させるのは面倒です. それを行うためのコードを書くこともできますが、それを行うためにも時間を費やし、コードが機能するかどうかもテストする必要があります。または、そのための既製のコードがすでにあるかもしれません...
または、JSON 差分タイプのツールを探すこともできます。いくつか検索しました。これらに出くわしました:
https://github.com/samsonjs/json-diffまたはhttps://tlrobinson.net/projects/javascript-fun/jsondiff
https://github.com/andreyvit/json-diff
どちらも私が望んでいたことをすることができませんでした。おそらく、JSON が複雑すぎるか大きすぎて処理できません。
最善の解決策について何か考えはありますか?または、現時点での最良の解決策は、各パラメーター/プロパティの grep を使用した手動分析でしょうか?
コード ソリューションに関しては、どの言語でもかまいません。必要なことを実行するパーサーまたは差分ツールが必要です。
申し訳ありませんが、JSON データ構造をあなたと共有することもできません。機密情報と見なされる可能性があります。