# \[IGN-4488\]Is tags compare between 2 versions of the project impossible?

**URL:** <https://forum.inductiveautomation.com/t/ign-4488-is-tags-compare-between-2-versions-of-the-project-impossible/51143>\
**Category:** Ignition\
**Created:** [September 20, 2021, 1:45pm UTC](https://forum.inductiveautomation.com/t/ign-4488-is-tags-compare-between-2-versions-of-the-project-impossible/51143 "2021-09-20T13:45:56Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [September 20, 2021, 3:43pm UTC](https://forum.inductiveautomation.com/t/ign-4488-is-tags-compare-between-2-versions-of-the-project-impossible/51143/3 "2021-09-20T15:43:15Z")

</div>

> [@hewking32](#):
>
> Is there any other way to compare the tags to find what is missing in the master project?

Use a tool that understands the semantics of JSON, e.g. [http://www.jsondiff.com/](http://www.jsondiff.com/)  
JSON is a human-readable format, but is _not_ plain text.

> [@hewking32](#):
>
> is using json file for exports not limiting ignition scada a lot as we cannot use excel for heavy duty manipulation of the tags?

On the contrary,

1. Exporting to Excel _would_ be dramatically limiting. Excel's strict row/column model, by definition, cannot fit nested data. If each row is a tag, where do you put properties that can have multiple values, such as alarms?
2. Modern Excel versions _can_ directly read JSON files, although you'll still ultimately have the same problem of shoving multi-dimensional nested data into a strict R/C format: [Power Query JSON connector - Power Query | Microsoft Learn](https://docs.microsoft.com/en-us/power-query/connectors/json)

Using a simple, but structured format, allows for a huge variety of tooling; JSON is a 'de-facto' standard for interchange between APIs and has an ecosystem to match. For instance, there's an _incredibly_ powerful tool call `jq` that can make very complex operations absolutely trivial; see this post for an example:

> [@How to create / append bulk tooltips via script with json export?](https://forum.inductiveautomation.com/t/how-to-create-append-bulk-tooltips-via-script-with-json-export/50072/4):
>
> You can do it with jq (a downloadable command-line executable designed to manipulate JSON): walk( if type == "object" and .valueSource == "opc" then .tooltip = "TagName: \(.name) \(.opcItemPath)" else . end) [https://jqplay.org/s/Pe6T7qNEFY](https://jqplay.org/s/Pe6T7qNEFY) I mostly copied this snippet from here:

---

_[View the full topic](https://forum.inductiveautomation.com/t/ign-4488-is-tags-compare-between-2-versions-of-the-project-impossible/51143)._
