<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://forge.codesys.com/lib/pro-json/home/Home/</link><description>Recent changes to Home</description><language>en</language><lastBuildDate>Wed, 18 Mar 2026 20:26:16 -0000</lastBuildDate><atom:link href="https://forge.codesys.com/lib/pro-json/home/Home/feed" rel="self" type="application/rss+xml"></atom:link><item><title>Discussion for Home page</title><link>https://forge.codesys.com/lib/pro-json/home/Home/?limit=50#3a08/056a/95fe/d9f6</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;a class="user-mention" href="/u/lucawu/profile/"&gt;@lucawu&lt;/a&gt; &lt;a class="user-mention" href="/u/risele/profile/"&gt;@risele&lt;/a&gt; for some reason I don't get notifications of new posts on this thread so I just noticed them now.&lt;br/&gt;
We switched from Schneider to Beckhoff a few years ago, and Beckhoff has their own JSON handling library.  I haven't had time to do any development on PRO_JSON since last year, and it's unlikely that I will any time soon. If you or anyone else is interested in being added as an admin to this project let me know.&lt;br/&gt;
It was an interesting project for me, and I learned a lot.  I know there's people all over the world using it in different applications, but there are also a lot more options than there were when I first developed this.&lt;br/&gt;
Maybe it's time to pass the torch to someone who's actively using it.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tvm</dc:creator><pubDate>Wed, 18 Mar 2026 20:26:16 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com4216d07f96106a06996cd8f63dbeb0e0df126272</guid></item><item><title>Discussion for Home page</title><link>https://forge.codesys.com/lib/pro-json/home/Home/?limit=25&amp;page=1#3a08/056a/95fe</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Just tested with your structs and seems JSON is perfectly valid.&lt;br/&gt;
With root:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;{"biota":{"PLANT":[{"NAME":null,"QUANTITY":null},{"NAME":null,"QUANTITY":null},{"NAME":null,"QUANTITY":null},{"NAME":null,"QUANTITY":null}],"ANIMAL":[{"NAME":null,"AGE":null},{"NAME":null,"AGE":null},{"NAME":null,"AGE":null},{"NAME":null,"AGE":null}]}}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Rootless:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;{"PLANT":[{"NAME":null,"QUANTITY":null},{"NAME":null,"QUANTITY":null},{"NAME":null,"QUANTITY":null},{"NAME":null,"QUANTITY":null}],"ANIMAL":[{"NAME":null,"AGE":null},{"NAME":null,"AGE":null},{"NAME":null,"AGE":null},{"NAME":null,"AGE":null}]}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The code I used:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;PROGRAM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;PLC_PRG&lt;/span&gt;
&lt;span class="nt"&gt;VAR&lt;/span&gt;
&lt;span class="nt"&gt;biota&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ST_BIOTA&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;converter&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nt"&gt;converter1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;STRUCT_TO_JSON&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;xRun&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nt"&gt;xRun1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;JSONString&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="nt"&gt;STRING&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;1000&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;JSONStringRootless&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="nt"&gt;STRING&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;1000&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;


&lt;span class="nt"&gt;END_VAR&lt;/span&gt;

&lt;span class="nt"&gt;IF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;xRun&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;THEN&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;IF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;converter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Done&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;OR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;converter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;THEN&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;xRun&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;FALSE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;END_IF&lt;/span&gt;
&lt;span class="nt"&gt;END_IF&lt;/span&gt;
&lt;span class="nt"&gt;IF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;xRun1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;THEN&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;IF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;converter1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Done&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;OR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;converter1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;THEN&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;xRun1&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;FALSE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;END_IF&lt;/span&gt;
&lt;span class="nt"&gt;END_IF&lt;/span&gt;
&lt;span class="nt"&gt;converter&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;JSONVars&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;ADR&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;biota&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;&lt;span class="nt"&gt;NumberOfVars&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;SIZEOF&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;biota&lt;/span&gt;&lt;span class="o"&gt;)/&lt;/span&gt;&lt;span class="nt"&gt;SIZEOF&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;JSONVAR&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;JSONString&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ADR&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;JSONString&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;JSONStringSize&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;SIZEOF&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;JSONString&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;Execute&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;xRun&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nt"&gt;Rootless&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;FALSE&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="nt"&gt;converter1&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;JSONVars&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;ADR&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;biota&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;&lt;span class="nt"&gt;NumberOfVars&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;SIZEOF&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;biota&lt;/span&gt;&lt;span class="o"&gt;)/&lt;/span&gt;&lt;span class="nt"&gt;SIZEOF&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;JSONVAR&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;JSONString&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ADR&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;JSONStringRootless&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;JSONStringSize&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;SIZEOF&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;JSONStringRootless&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;Execute&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;xRun1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nt"&gt;Rootless&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">risele</dc:creator><pubDate>Sat, 07 Mar 2026 23:00:55 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com4c59892bc1021cd29ff58558603789091da35f2e</guid></item><item><title>Discussion for Home page</title><link>https://forge.codesys.com/lib/pro-json/home/Home/?limit=25&amp;page=1#3a08/056a</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you for your fixes. I tried version 1.0.21.0 of your library, and the Rootless feature for STRUCT_TO_JSON works great. &lt;br/&gt;
However, I found that it still doesn't correctly output the closing brackets when serializing an array of structures. Have you tested this kind of structure：&lt;br/&gt;
TYPE ST_PLANT :&lt;br/&gt;
STRUCT&lt;br/&gt;
    NAME        : JSONVAR;&lt;br/&gt;
    QUANTITY    : JSONVAR;&lt;br/&gt;
END_STRUCT&lt;br/&gt;
END_TYPE&lt;/p&gt;
&lt;p&gt;TYPE ST_ANIMAL :&lt;br/&gt;
STRUCT&lt;br/&gt;
    NAME        : JSONVAR;&lt;br/&gt;
    AGE         : JSONVAR;&lt;br/&gt;
END_STRUCT&lt;br/&gt;
END_TYPE&lt;/p&gt;
&lt;p&gt;TYPE ST_BIOTA :&lt;br/&gt;
STRUCT&lt;br/&gt;
    PLANT   : ARRAY&lt;span&gt;[0..3]&lt;/span&gt; OF ST_PLANT;&lt;br/&gt;
    ANIMAL  : ARRAY&lt;span&gt;[0..3]&lt;/span&gt; OF ST_ANIMAL;&lt;br/&gt;
END_STRUCT&lt;br/&gt;
END_TYPE&lt;br/&gt;
When using STRUCT_TO_JSON with my ST_BIOTA structure, regardless of whether my Rootless setting is TRUE or FALSE, the generated string is always missing the final ']' and the preceding '}'. I would be very grateful if you could clarify this issue for me.&lt;br/&gt;
Regardless, thank you again for your contribution, respect!&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">lucawu</dc:creator><pubDate>Fri, 06 Mar 2026 07:29:53 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comd6341c2b076e986508407b11750badc266227565</guid></item><item><title>Discussion for Home page</title><link>https://forge.codesys.com/lib/pro-json/home/Home/?limit=25&amp;page=1#3a08</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br/&gt;
it seems I have fixed issues with arrays of structs.&lt;br/&gt;
Also added option for rootless JSON exporting/uploading&lt;/p&gt;
&lt;p&gt;And multidimensional arrays!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/Risele/PRO_JSON/" rel="nofollow"&gt;https://github.com/Risele/PRO_JSON/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hope it will work for you: I made brief tests at my structures only.&lt;/p&gt;
&lt;p&gt;PS: made with help of AI agent, found it's quite good if you give him project/files exported as PLCOpenXML.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">risele</dc:creator><pubDate>Wed, 11 Feb 2026 20:39:25 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comb0dd90cecba9ef79056d3050e1a496c0773d37d1</guid></item><item><title>Discussion for Home page</title><link>https://forge.codesys.com/lib/pro-json/home/Home/?limit=25&amp;page=1#4a60</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hello everyone, I found a bug in Version 1.0.18.0.&lt;br/&gt;
I have a structure:&lt;/p&gt;
&lt;p&gt;TYPE ST_JSON_TEST :&lt;br/&gt;
STRUCT&lt;br/&gt;
testList : ARRAY&lt;span&gt;[0..1]&lt;/span&gt; OF JSONVAR;&lt;br/&gt;
END_STRUCT&lt;br/&gt;
END_TYPE&lt;/p&gt;
&lt;p&gt;It is declared as follows:&lt;br/&gt;
stJsonTest : ST_JSON_TEST;&lt;br/&gt;
stJsonTest.testList&lt;span&gt;[0]&lt;/span&gt;.CharString := 'used';&lt;/p&gt;
&lt;p&gt;stJsonTest.testList&lt;span&gt;[0]&lt;/span&gt; is null;&lt;/p&gt;
&lt;p&gt;I called the method "STRUCT_TO_JSON" with the input parameter "IgnoreNull := true".&lt;br/&gt;
After that, the string I got is:&lt;br/&gt;
'{"stJsonTest":{"testList":&lt;span&gt;["used"}]&lt;/span&gt;}'&lt;/p&gt;
&lt;p&gt;You can see that the position of ']' is incorrect. Does anyone know how to fix this? Thank you for any advice!&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">lucawu</dc:creator><pubDate>Thu, 11 Dec 2025 10:05:40 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com36b6749702ec39b27adb4c2bff4cc9e3d0bf1a09</guid></item><item><title>Discussion for Home page</title><link>https://forge.codesys.com/lib/pro-json/home/Home/?limit=25&amp;page=1#1dbb</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hello Everyone , &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bugs detected during testing with PROJSON 1.0.16.0: &lt;br/&gt;
A new bug has been discovered in the PROJSON library, an incorrect JSON is produced when the message to be composed is a structure array, and one of its attributes is another structure:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example that does not work : &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;testLevel1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;JSONVAR&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;house&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;rooms&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Var1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Example that works : &lt;br/&gt;
    testLevel1: JSONVAR;&lt;br/&gt;
    house.rooms&lt;span&gt;[1..N]&lt;/span&gt;.Var1&lt;/p&gt;
&lt;p&gt;Example that works : &lt;br/&gt;
    house.room1.window.Var1&lt;/p&gt;
&lt;p&gt;In our testing phase, we took into account previously identified bugs, in particular: &lt;br/&gt;
    - The prohibition of having a single array in a JSON structure; it must be preceded by a JSON variable.&lt;br/&gt;
    - The array index must start at 1.&lt;/p&gt;
&lt;p&gt;Solution: We adopted the latter solution, defining each room flatly to avoid having a structure array whose attributes&lt;br/&gt;
include another structure: &lt;br/&gt;
house.room1.window.koeffCorrecteur  &lt;br/&gt;
house.room2.window.koeffCorrecteur&lt;br/&gt;
...&lt;br/&gt;
house.room7.window.koeffCorrecteur  &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">youness</dc:creator><pubDate>Tue, 09 Dec 2025 15:25:49 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com9c74813c40b4eda1ce7d440496b57e2534ec52a7</guid></item><item><title>Home modified by tvm</title><link>https://forge.codesys.com/lib/pro-json/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v15
+++ v16
@@ -1,7 +1,7 @@
 # **Version 1.0.18.0**
 Codesys SP21 Download [here](https://www.dropbox.com/scl/fi/zvrl8leyg67381wljvzyr/PRO_JSON-1.0.18.0-Codesys-SP21.library?rlkey=0in7kanqiewme62qmqhm2ov26&amp;amp;dl=0)
 Codesys SP16 Download [here](https://www.dropbox.com/scl/fi/kvsfwikth9a1ep4cwfr0q/PRO_JSON-1.0.18.0-Codesys-SP16.library?rlkey=vqx8avfrrlsg0dqaanw7ea6kd&amp;amp;dl=0)
-I haven't touched this library for a while, but a couple people emailed me with bugs and feature requests, so I decided to have another crack at it.  As usual, this library is released under the terms of "it's on the internet so people can do whatever the heck they want with it".  Use it, modify it, copy it, put it in your own projects, contribute to it, credit me. Or not. Whatever you like.  But it's free, so don't cry to me if it breaks something.  If you find a bug, the best way to get my attention is with an test project showing the problem.  Otherwise I have to recreate your use case manually, and I may or may not have time to do that.
+I haven't touched this library for a while, but a couple people emailed me with bugs and feature requests, so I decided to have another crack at it.  As usual, this library is released under the terms of "it's on the internet so people can do whatever the heck they want with it".  Use it, modify it, copy it, put it in your own projects, contribute to it, credit me. Or not. Whatever you like.  But it's free, so don't cry to me if it breaks something.  If you find a bug, the best way to get my attention is with a test project showing the problem.  Otherwise I have to recreate your use case manually, and I may or may not have time to do that.
 **Release Notes**
 1.  Significant refactoring in several places, for both efficiency and ease of understanding.  Some of the code I didn't understand, and I wrote it.  Added several new functions and methods.
 2.  Moved the version number over one decimal place, so 1.0.18.0 follows 1.0.0.16.  Odd numbers in the third position will be for development versions
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tvm</dc:creator><pubDate>Wed, 25 Jun 2025 23:09:41 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comd6b997bc12b75e052d6799e4e7e27371ccac1051</guid></item><item><title>Discussion for Home page</title><link>https://forge.codesys.com/lib/pro-json/home/Home/?limit=50#2081/55f8</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;This should be fixed in the new version 1.0.18.0.  Previous to that version, only 1-based arrays were supported.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tvm</dc:creator><pubDate>Wed, 25 Jun 2025 23:05:48 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.coma3abc51f7fedbc138519c5d152de40b1cc988bbc</guid></item><item><title>Discussion for Home page</title><link>https://forge.codesys.com/lib/pro-json/home/Home/?limit=50#4a1e/07c7</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;This should be fixed in the new version 1.0.18.0.  I did some restructuring to fix some issues with arrays. Only thing I haven't done yet is multi-dimensional arrays.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tvm</dc:creator><pubDate>Wed, 25 Jun 2025 23:04:13 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com7abbdd9e0bcbf17c5aa13390c99be2841e618a20</guid></item><item><title>Home modified by tvm</title><link>https://forge.codesys.com/lib/pro-json/home/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v14
+++ v15
@@ -1,4 +1,4 @@
-Version 1.0.18.0
+# **Version 1.0.18.0**
 Codesys SP21 Download [here](https://www.dropbox.com/scl/fi/zvrl8leyg67381wljvzyr/PRO_JSON-1.0.18.0-Codesys-SP21.library?rlkey=0in7kanqiewme62qmqhm2ov26&amp;amp;dl=0)
 Codesys SP16 Download [here](https://www.dropbox.com/scl/fi/kvsfwikth9a1ep4cwfr0q/PRO_JSON-1.0.18.0-Codesys-SP16.library?rlkey=vqx8avfrrlsg0dqaanw7ea6kd&amp;amp;dl=0)
 I haven't touched this library for a while, but a couple people emailed me with bugs and feature requests, so I decided to have another crack at it.  As usual, this library is released under the terms of "it's on the internet so people can do whatever the heck they want with it".  Use it, modify it, copy it, put it in your own projects, contribute to it, credit me. Or not. Whatever you like.  But it's free, so don't cry to me if it breaks something.  If you find a bug, the best way to get my attention is with an test project showing the problem.  Otherwise I have to recreate your use case manually, and I may or may not have time to do that.
@@ -19,7 +19,7 @@
 2.  In certain instances, it's not possible to have an unnamed object, regardless of the MaxLevels input


-Version 1.0.0.16
+# **Version 1.0.0.16**
 Download [here](https://www.dropbox.com/scl/fi/16rzprk6dhnr6204ya5vu/PRO_JSON-1.0.0.16.library?rlkey=vohd00hny0uvm9i6a1avf16vq&amp;amp;dl=0)
 Changes:
 1.  changes to JSONVAR.FB_Init (Simon Dreyer)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tvm</dc:creator><pubDate>Wed, 25 Jun 2025 21:56:29 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comc4c3d4861aeb5eb435b91781f39bbfbeaae436bd</guid></item></channel></rss>