Java : [標準API]Map<String,Object>型を JSONパース可能な1行のString型に変換。

標準APIのみで、Map<String,Object>(最終的にはMap<String,String>)を、JSONのパースが可能な1行の文字列に変換する再帰関数。
Java1.8。

以下コード。
  1. /**
  2. * Map型をJSONパース前のString平坦文に変更。
  3. * @param map : Map<String,Object>型で定義されている。終端の要素はMap<String,String>であってほしい。
  4. * @return 引数 map をString型に変換した状態。
  5. */
  6. @SuppressWarnings("unchecked")
  7. private String mapToString(Map<String, Object> map) {
  8. String sss = "{";
  9. for (Entry<String, Object> e : map.entrySet()) {
  10. if ( e.getValue() instanceof Map ) {
  11. sss += "\"" + e.getKey() + "\":";
  12. sss += mapToString((Map<String, Object>)e.getValue());
  13. sss = sss.substring(0, sss.length() - 1) + "},";
  14. } else {
  15. sss += "\"" + e.getKey() + "\":\"" + e.getValue() + "\",";
  16. }
  17. }
  18. return sss.substring(0, sss.length() - 1) + "}";
  19. }


こういう状況なら、JavaScrirptで以下のような取扱いが可能。
var j = JSON.parse(sss)

コメント

このブログの人気の投稿

windows10 で nvidia のグラボのcode43現象を解決した

Java : processbuilder 標準出力 タイムアウト

GTX560Ti がおかしい(code 43が出る)(2018年)→解決しました(2019)