<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="125357" data-post-id="125357">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="CharlesO" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/CharlesO/120/34571_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  CharlesO
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>but not really so in my case… they have a system in place, it generates these zipped encrypted files.</p>
<p>The option i have is to read the files, decrypt, unzip, the read the content.</p>
<p><a href="https://www.javaworld.com/article/2072752/the-java-serialization-algorithm-revealed.html" class="inline-onebox" rel="noopener nofollow ugc">InfoWorld | Technology insight for the enterprise</a> is a great starting point … if only i can read back the file , like <strong><a class="mention" href="/u/tcoopman" rel="nofollow">@tcoopman</a></strong> has been able to do.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="125357" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/reading-files-data-structures-from-other-platforms-into-elixir-erlang/21845/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-125357" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="125357"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="125372" data-post-id="125372">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think there is still misunderstanding.</p>
<p>Yes – let the old system work the way it does. Nobody is arguing that.</p>
<p>No – do not use Erlang/Elixir to read serialized Java <code>HashMap</code> objects.</p>
<p>Yes – do write a Java tool that reads the serialized <code>HashMap</code> objects.</p>
<p>Yes – make that tool write the read <code>HashMap</code>s to JSON.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="125372" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/reading-files-data-structures-from-other-platforms-into-elixir-erlang/21845/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-125372" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="125372"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="125374" data-post-id="125374">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="NobbZ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/NobbZ/120/27235_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  NobbZ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="CharlesO" data-post="22" data-topic="21845">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/charleso/48/34571_2.png" class="avatar"> CharlesO:</div>
<blockquote>
<p>but not really so in my case… they have a system in place, it generates these zipped encrypted files.</p>
</blockquote>
</aside>
<p>And I never told you to change that. I have understood that you can not change the legacy system.</p>
<p>What we are suggesting is that you write a “third” program in Java, that does the conversion, depending on the type of the value in the map, either write out JSON or XML or BERT (aka Erlang External Term Format).</p>
<p>You have already Java code that shows you how to load the dump. Therefore loading and converting from there is probably the easiest thing to do.</p>
<p>Trying to load the <strong>unknown</strong> encoding in elixir/erlang code will be a lot of pain. We are just suggesting the easier ways. The BEAM is good in letting other programs work. Use it!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="125374" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/reading-files-data-structures-from-other-platforms-into-elixir-erlang/21845/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-125374" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="125374"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="125377" data-post-id="125377">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="al2o3cr" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/al2o3cr/120/3457_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  al2o3cr
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="CharlesO" data-post="1" data-topic="21845">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/charleso/48/34571_2.png" class="avatar"> CharlesO:</div>
<blockquote>
<p>I tried to <em>grok</em> this link below, but i feel there’s got to be a much simpler way to interop common data structures from other platforms</p>
</blockquote>
</aside>
<p>I wouldn’t classify serialized Java objects as a “common data structure”. You’d encounter similar problems trying to use Elixir to read data stored from Ruby’s <code>Marshal</code>, Python’s <code>pickle</code> or PHP’s <code>serialize</code>, all of which are intended for language-specific structure-preserving data storage.</p>
<p>Compare those to Erlang’s external term format, which is <a href="http://erlang.org/doc/apps/erts/erl_ext_dist.html" rel="nofollow">extensively documented</a> specifically for interoperating with non-Erlang code.</p>
<p>+1 to writing an adapter program in Java, to let Java handle decoding its own data structures.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="125377" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/reading-files-data-structures-from-other-platforms-into-elixir-erlang/21845/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-125377" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="125377"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="125378" data-post-id="125378">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Let’s see if actual code and working tool will help. I made a quick repo:</p>
<p><a href="https://github.com/dimitarvp/java_serialized_hashmap_to_json" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/dimitarvp/java_serialized_hashmap_to_json</a></p>
<p>Compile and run instructions are in the README file.</p>
<p>After compilation I ran this:</p>
<pre data-code-wrap="bash"><code class="lang-bash">java -cp gson-2.8.5.jar:. MapToJson ~/Downloads/sample1.zip
</code></pre>
<p>And voila, minified JSON on the standard output.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="125378" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/reading-files-data-structures-from-other-platforms-into-elixir-erlang/21845/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-125378" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="125378"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-solved cat-solved" title="Marked as solution"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>